@crewx/sdk 0.9.0-rc.16 → 0.9.0-rc.160
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/README.md +1 -1
- package/dist/account/auth-client.d.ts +61 -0
- package/dist/account/auth-json-v2.d.ts +1 -0
- package/dist/account/auth-json.d.ts +30 -0
- package/dist/account/config.d.ts +37 -0
- package/dist/account/env-bootstrap.d.ts +11 -0
- package/dist/account/errors.d.ts +24 -0
- package/dist/account/index.d.ts +12 -0
- package/dist/account/index.js +2 -0
- package/dist/account/session-manager.d.ts +47 -0
- package/dist/activity-log/builder.d.ts +59 -6
- package/dist/agent/agent-list-view.d.ts +19 -0
- package/dist/app/app.d.ts +148 -0
- package/dist/app/backend-env.d.ts +3 -0
- package/dist/app/content-media-types.d.ts +2 -0
- package/dist/app/context.d.ts +2 -0
- package/dist/app/entry.d.ts +7 -0
- package/dist/app/frame.d.ts +55 -0
- package/dist/app/index.d.ts +10 -0
- package/dist/app/index.js +10 -0
- package/dist/app/protocol.d.ts +9 -0
- package/dist/app/runtime.d.ts +21 -0
- package/dist/app/tool-mode.d.ts +3 -0
- package/dist/boxing/box.types.d.ts +4 -0
- package/dist/config/canonicalize-agent-options.d.ts +18 -0
- package/dist/config/default-agent-models.d.ts +11 -0
- package/dist/config/global-settings.d.ts +33 -0
- package/dist/config/migrate-grok-mode.d.ts +6 -0
- package/dist/config/model-compat.d.ts +31 -0
- package/dist/config/models.generated.d.ts +37 -0
- package/dist/config/models.remote.d.ts +1 -0
- package/dist/config/overdrive.d.ts +7 -0
- package/dist/config/pricing.d.ts +6 -3
- package/dist/config/pricing.generated.d.ts +4 -0
- package/dist/config/pricing.types.d.ts +4 -0
- package/dist/config/timeout.config.d.ts +4 -0
- package/dist/config/wi-boards.d.ts +19 -0
- package/dist/context-budget/continuity.d.ts +63 -0
- package/dist/context-budget/index.d.ts +142 -0
- package/dist/conversation/index.d.ts +1 -1
- package/dist/conversation/sqlite-provider.d.ts +6 -3
- package/dist/conversation/to-template-messages.d.ts +9 -0
- package/dist/conversation/types.d.ts +58 -1
- package/dist/desktop/command-runner.d.ts +4 -0
- package/dist/desktop/default-adapters.d.ts +4 -0
- package/dist/desktop/global-install.d.ts +19 -0
- package/dist/desktop/index.d.ts +3 -0
- package/dist/desktop/index.js +3 -0
- package/dist/desktop/install.d.ts +5 -0
- package/dist/desktop/lnk.d.ts +22 -0
- package/dist/desktop/manifest.d.ts +21 -0
- package/dist/desktop/types.d.ts +67 -0
- package/dist/desktop/version.d.ts +1 -0
- package/dist/desktop/windows-paths.d.ts +21 -0
- package/dist/desktop/wrapper.d.ts +18 -0
- package/dist/esm/account/index.js +2 -0
- package/dist/esm/app/index.js +10 -0
- package/dist/esm/desktop/index.js +3 -0
- package/dist/esm/index.js +1126 -224
- package/dist/esm/node/index.js +2 -0
- package/dist/esm/plugins/index.js +496 -214
- package/dist/esm/process/index.js +1 -0
- package/dist/esm/publish/index.js +2 -0
- package/dist/esm/repository/index.js +608 -211
- package/dist/esm/skills/index.js +2 -0
- package/dist/esm/testing/index.js +1 -1
- package/dist/events/types.d.ts +16 -0
- package/dist/facade/Crewx.d.ts +61 -5
- package/dist/facade/task-ticket.d.ts +14 -0
- package/dist/highlight/thread-highlight-prompt.d.ts +2 -0
- package/dist/highlight/thread-highlighter.d.ts +326 -0
- package/dist/index.browser.d.ts +19 -1
- package/dist/index.browser.js +6 -2
- package/dist/index.d.ts +131 -17
- package/dist/index.js +1128 -226
- package/dist/internal/console-decoder.d.ts +38 -0
- package/dist/internal/windows-spawn.d.ts +10 -0
- package/dist/layout/types.d.ts +18 -1
- package/dist/lifecycle/process-lease.d.ts +80 -0
- package/dist/lifecycle/process-owner.d.ts +20 -0
- package/dist/lifecycle/task-heartbeat.d.ts +41 -0
- package/dist/lifecycle/task-stop.d.ts +82 -0
- package/dist/lifecycle/update-admission.d.ts +45 -0
- package/dist/local-server/base-url.d.ts +18 -0
- package/dist/local-server/index.d.ts +8 -0
- package/dist/local-server/opencode.d.ts +8 -0
- package/dist/local-server/probe.d.ts +3 -0
- package/dist/local-server/runtime.d.ts +26 -0
- package/dist/local-server/types.d.ts +43 -0
- package/dist/mcp-app/agent-access.d.ts +26 -0
- package/dist/mcp-app/app-handoff.d.ts +109 -0
- package/dist/mcp-app/apps-context.d.ts +32 -0
- package/dist/mcp-app/bundle-provenance.d.ts +3 -0
- package/dist/mcp-app/candidate-registration.d.ts +4 -0
- package/dist/mcp-app/card-handler.d.ts +7 -0
- package/dist/mcp-app/catalog.d.ts +7 -0
- package/dist/mcp-app/content-channel.d.ts +86 -0
- package/dist/mcp-app/content-declarations.d.ts +31 -0
- package/dist/mcp-app/dev-checks.d.ts +29 -0
- package/dist/mcp-app/diagnostic-reason.d.ts +3 -0
- package/dist/mcp-app/discovery.d.ts +161 -0
- package/dist/mcp-app/errors.d.ts +7 -0
- package/dist/mcp-app/index.d.ts +37 -0
- package/dist/mcp-app/installed-app-ref.d.ts +25 -0
- package/dist/mcp-app/model-context.d.ts +29 -0
- package/dist/mcp-app/node-app-discovery-fs.d.ts +23 -0
- package/dist/mcp-app/product-bundle-assets.d.ts +27 -0
- package/dist/mcp-app/product-bundle-loader.d.ts +53 -0
- package/dist/mcp-app/projection.d.ts +14 -0
- package/dist/mcp-app/prompt-cards.d.ts +28 -0
- package/dist/mcp-app/registry.d.ts +28 -0
- package/dist/mcp-app/skill-backend.d.ts +132 -0
- package/dist/mcp-app/state-set.d.ts +9 -0
- package/dist/mcp-app/types.d.ts +488 -0
- package/dist/mcp-app/workspace-app-assets.d.ts +42 -0
- package/dist/mcp-app/workspace-app-scan-cache.d.ts +27 -0
- package/dist/mcp-app/workspace-snapshot.d.ts +72 -0
- package/dist/migrations/0011_far_black_tarantula.sql +1 -0
- package/dist/migrations/0012_blue_turbo.sql +23 -0
- package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
- package/dist/migrations/0014_organic_mongu.sql +73 -0
- package/dist/migrations/0015_panoramic_gorilla_man.sql +71 -0
- package/dist/migrations/0016_fuzzy_hemingway.sql +14 -0
- package/dist/migrations/0017_project_stage_sdk_migration.sql +29 -0
- package/dist/migrations/0018_bored_jackal.sql +33 -0
- package/dist/migrations/0019_backfill_task_thread_ids.sql +74 -0
- package/dist/migrations/0020_useful_iron_lad.sql +55 -0
- package/dist/migrations/0021_dashing_peter_quill.sql +51 -0
- package/dist/migrations/0022_wandering_bucky.sql +1 -0
- package/dist/migrations/0023_red_payback.sql +1 -0
- package/dist/migrations/0024_storage_metadata.sql +262 -0
- package/dist/migrations/0025_task_heartbeat.sql +8 -0
- package/dist/migrations/0025_thread_app_instance_ledger.sql +2 -0
- package/dist/migrations/0026_mcp_action_source.sql +47 -0
- package/dist/migrations/0027_task_stop_scope_cleanup.sql +5 -0
- package/dist/migrations/0027_ui_instance_active_unique.sql +2 -0
- package/dist/migrations/0029_nice_rhino.sql +1 -0
- package/dist/migrations/0031_petite_arclight.sql +6 -0
- package/dist/migrations/0032_ui_instance_opened_by.sql +1 -0
- package/dist/migrations/0033_thread_creator_boundary_guard.sql +38 -0
- package/dist/migrations/0034_keen_fallen_one.sql +36 -0
- package/dist/migrations/0035_request_log_daily.sql +11 -0
- package/dist/migrations/0036_ui_definition_archive.sql +8 -0
- package/dist/migrations/0037_ui_instance_agent_open_request.sql +1 -0
- package/dist/migrations/0038_task_rating.sql +3 -0
- package/dist/migrations/0039_aspiring_purifiers.sql +9 -0
- package/dist/migrations/0040_task_provider_inputs.sql +53 -0
- package/dist/migrations/meta/0011_snapshot.json +1342 -0
- package/dist/migrations/meta/0012_snapshot.json +1494 -0
- package/dist/migrations/meta/0013_snapshot.json +1592 -0
- package/dist/migrations/meta/0014_snapshot.json +1975 -0
- package/dist/migrations/meta/0015_snapshot.json +2315 -0
- package/dist/migrations/meta/0016_snapshot.json +2419 -0
- package/dist/migrations/meta/0017_snapshot.json +2419 -0
- package/dist/migrations/meta/0018_snapshot.json +2570 -0
- package/dist/migrations/meta/0020_snapshot.json +2895 -0
- package/dist/migrations/meta/0021_snapshot.json +3031 -0
- package/dist/migrations/meta/0022_snapshot.json +3039 -0
- package/dist/migrations/meta/0023_snapshot.json +3047 -0
- package/dist/migrations/meta/0029_snapshot.json +3206 -0
- package/dist/migrations/meta/0031_snapshot.json +3251 -0
- package/dist/migrations/meta/0034_snapshot.json +3473 -0
- package/dist/migrations/meta/0035_snapshot.json +3547 -0
- package/dist/migrations/meta/0036_snapshot.json +3591 -0
- package/dist/migrations/meta/0037_snapshot.json +3598 -0
- package/dist/migrations/meta/0038_snapshot.json +3626 -0
- package/dist/migrations/meta/0039_snapshot.json +3684 -0
- package/dist/migrations/meta/0040_snapshot.json +3759 -0
- package/dist/migrations/meta/_journal.json +210 -0
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.js +2 -0
- package/dist/paths.d.ts +1 -0
- package/dist/plugin/types.d.ts +1 -0
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/index.js +496 -214
- package/dist/plugins/sqlite-tracing.d.ts +46 -0
- package/dist/process/index.d.ts +2 -0
- package/dist/process/index.js +1 -0
- package/dist/process/process-control.d.ts +41 -0
- package/dist/prompt/tag-names.d.ts +22 -0
- package/dist/provider/acp/connection.d.ts +6 -0
- package/dist/provider/acp/meta.d.ts +11 -0
- package/dist/provider/bridge.d.ts +7 -1
- package/dist/provider/classify-task-error.d.ts +2 -0
- package/dist/provider/cli/adapter.types.d.ts +14 -2
- package/dist/provider/cli/adapters/agent-call.util.d.ts +1 -1
- package/dist/provider/cli/adapters/cli-knob.util.d.ts +7 -0
- package/dist/provider/cli/adapters/codex-item.d.ts +1 -0
- package/dist/provider/cli/adapters/event-timestamp.util.d.ts +1 -0
- package/dist/provider/cli/adapters/grok.d.ts +2 -0
- package/dist/provider/cli/adapters/index.d.ts +5 -0
- package/dist/provider/cli/index.d.ts +3 -2
- package/dist/provider/cli/meta.d.ts +5 -0
- package/dist/provider/cli/protocol-envelope.d.ts +3 -0
- package/dist/provider/errors.d.ts +5 -1
- package/dist/provider/idle-watchdog.d.ts +19 -0
- package/dist/provider/models.d.ts +17 -12
- package/dist/provider/order.d.ts +1 -1
- package/dist/provider/parse-usage.d.ts +6 -0
- package/dist/provider/provider-selection.d.ts +8 -0
- package/dist/provider/redact-technical-message.d.ts +1 -0
- package/dist/provider/task-error.types.d.ts +17 -0
- package/dist/publish/constants.d.ts +6 -0
- package/dist/publish/errors.d.ts +7 -0
- package/dist/publish/index.d.ts +50 -0
- package/dist/publish/index.js +2 -0
- package/dist/publish/manifest.d.ts +47 -0
- package/dist/publish/marketplace-api.constants.d.ts +1 -0
- package/dist/publish/pack.d.ts +6 -0
- package/dist/publish/scan.d.ts +10 -0
- package/dist/publish/secrets.d.ts +6 -0
- package/dist/publish/upload.d.ts +19 -0
- package/dist/remote/execution-profile.d.ts +9 -0
- package/dist/remote/index.d.ts +1 -0
- package/dist/remote/types.d.ts +28 -0
- package/dist/repository/agent-send-history.repository.d.ts +23 -0
- package/dist/repository/agent-suggestion.repository.d.ts +34 -0
- package/dist/repository/base-sqlite-repository.d.ts +1 -0
- package/dist/repository/common-code.repository.d.ts +45 -0
- package/dist/repository/db.d.ts +12 -1
- package/dist/repository/index.d.ts +49 -6
- package/dist/repository/index.js +608 -211
- package/dist/repository/logs-db.d.ts +12 -0
- package/dist/repository/notification.repository.d.ts +58 -0
- package/dist/repository/project.repository.d.ts +90 -0
- package/dist/repository/request-log-mover.d.ts +70 -0
- package/dist/repository/request-log.repository.d.ts +7 -3
- package/dist/repository/storage-metadata.repository.d.ts +64 -0
- package/dist/repository/task-log-migration.d.ts +74 -0
- package/dist/repository/task-log.repository.d.ts +44 -0
- package/dist/repository/task-status.d.ts +21 -0
- package/dist/repository/task.repository.d.ts +300 -7
- package/dist/repository/thread-history.repository.d.ts +193 -0
- package/dist/repository/thread-origin-verdict.d.ts +27 -0
- package/dist/repository/thread-title.types.d.ts +29 -0
- package/dist/repository/thread.repository.d.ts +118 -7
- package/dist/repository/usage-backfill.d.ts +62 -0
- package/dist/repository/usage-from-logs.d.ts +21 -0
- package/dist/repository/workspace.repository.d.ts +3 -0
- package/dist/schema/agent-send-history.d.ts +85 -0
- package/dist/schema/agent-suggestions.d.ts +199 -0
- package/dist/schema/common-codes.d.ts +216 -0
- package/dist/schema/index.d.ts +15 -0
- package/dist/schema/notifications.d.ts +303 -0
- package/dist/schema/projects.d.ts +610 -0
- package/dist/schema/request-log-daily.d.ts +151 -0
- package/dist/schema/storage-metadata.d.ts +181 -0
- package/dist/schema/task-log-events.d.ts +119 -0
- package/dist/schema/task-provider-inputs.d.ts +100 -0
- package/dist/schema/tasks.d.ts +1058 -1
- package/dist/schema/thread-creator-unverified.d.ts +45 -0
- package/dist/schema/thread-history.d.ts +734 -0
- package/dist/schema/threads.d.ts +59 -0
- package/dist/schema/ui-action-receipts.d.ts +358 -0
- package/dist/schema/ui-definition-archive.d.ts +63 -0
- package/dist/schema/ui-instance-repins.d.ts +222 -0
- package/dist/schema/ui-instances.d.ts +324 -0
- package/dist/schema/workspaces.d.ts +17 -0
- package/dist/skills/index.d.ts +15 -0
- package/dist/skills/index.js +2 -0
- package/dist/skills/types.d.ts +18 -0
- package/dist/task-log/anchor-child-tasks.d.ts +7 -0
- package/dist/task-log/delegation-trailer.d.ts +34 -0
- package/dist/template/engine.d.ts +2 -2
- package/dist/template/helpers/exec.browser.d.ts +4 -3
- package/dist/template/helpers/exec.d.ts +4 -3
- package/dist/template/helpers/format-conversation.d.ts +1 -0
- package/dist/template/types.d.ts +20 -0
- package/dist/testing/index.js +1 -1
- package/dist/types/index.d.ts +1578 -3
- package/dist/types/task-log.types.d.ts +3 -0
- package/dist/ui-card/index.d.ts +2 -0
- package/dist/ui-card/legacy-card-parser.d.ts +11 -0
- package/dist/ui-instance/definition.d.ts +6 -0
- package/dist/ui-instance/errors.d.ts +18 -0
- package/dist/ui-instance/index.d.ts +11 -0
- package/dist/ui-instance/json.d.ts +19 -0
- package/dist/ui-instance/lineage.d.ts +24 -0
- package/dist/ui-instance/runtime.d.ts +19 -0
- package/dist/ui-instance/store.d.ts +213 -0
- package/dist/ui-instance/types.d.ts +329 -0
- package/dist/ui-plugin/app-manifest.d.ts +64 -0
- package/dist/ui-plugin/csp.d.ts +28 -0
- package/dist/ui-plugin/index.d.ts +6 -0
- package/dist/ui-plugin/limits.d.ts +27 -0
- package/dist/ui-plugin/manifest.d.ts +3 -0
- package/dist/ui-plugin/types.d.ts +203 -0
- package/dist/ui-plugin/validator.d.ts +18 -0
- package/dist/utils/crewx-executable.d.ts +76 -0
- package/dist/utils/crewx-home.d.ts +1 -0
- package/dist/utils/env-defaults.d.ts +3 -0
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/local-identity.d.ts +2 -0
- package/dist/utils/runner-env.d.ts +3 -0
- package/dist/utils/timestamp.d.ts +1 -0
- package/dist/utils/workspace.d.ts +1 -0
- package/dist/wi/create.d.ts +48 -0
- package/dist/wi/select.d.ts +20 -0
- package/package.json +57 -3
- package/templates/agents/default.yaml +303 -128
- package/templates/documents/crewx-manual.md +138 -138
- package/templates/documents/crewx-quick-guide.md +8 -7
- package/templates/workflows/wi-default-flow.yaml +65 -0
- package/templates/workflows/wi-plan-flow.yaml +140 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type SqliteDatabase = import('better-sqlite3').Database;
|
|
2
|
+
export declare const LOGS_DB_FILE_NAME = "logs.db";
|
|
3
|
+
export declare const LOGS_DB_SCHEMA_VERSION = 1;
|
|
4
|
+
export declare function resolveCrewxLogsDbPath(crewxDbPath?: string): string;
|
|
5
|
+
export declare function hashRequestLogBody(body: string): string;
|
|
6
|
+
export interface LogsDbHandle {
|
|
7
|
+
readonly path: string;
|
|
8
|
+
readonly sqlite: SqliteDatabase;
|
|
9
|
+
close(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function openLogsDb(crewxDbPath?: string): LogsDbHandle;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { BaseSqliteRepository } from './base-sqlite-repository.js';
|
|
2
|
+
import { notifications, notification_reads } from '../schema/index.js';
|
|
3
|
+
export declare const DEFAULT_NOTIFICATION_CAP = 500;
|
|
4
|
+
export type NotificationRow = typeof notifications.$inferSelect;
|
|
5
|
+
export type NewNotification = typeof notifications.$inferInsert;
|
|
6
|
+
export type NotificationReadRow = typeof notification_reads.$inferSelect;
|
|
7
|
+
export type NotificationLevel = 'info' | 'warning' | 'critical';
|
|
8
|
+
export type NotificationSource = 'agent' | 'system';
|
|
9
|
+
export interface CreateNotificationInput {
|
|
10
|
+
workspaceId: string;
|
|
11
|
+
agentId?: string | null;
|
|
12
|
+
taskId?: string | null;
|
|
13
|
+
threadId?: string | null;
|
|
14
|
+
source?: NotificationSource;
|
|
15
|
+
level?: NotificationLevel;
|
|
16
|
+
title: string;
|
|
17
|
+
body?: string | null;
|
|
18
|
+
targetUserId?: string | null;
|
|
19
|
+
metadata?: string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface NotificationListItem extends NotificationRow {
|
|
22
|
+
read: boolean;
|
|
23
|
+
read_at: string | null;
|
|
24
|
+
}
|
|
25
|
+
export interface ListNotificationsParams {
|
|
26
|
+
workspaceId: string;
|
|
27
|
+
userId: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface UserScope {
|
|
31
|
+
workspaceId: string;
|
|
32
|
+
userId: string;
|
|
33
|
+
}
|
|
34
|
+
export interface MarkReadParams {
|
|
35
|
+
notificationId: string;
|
|
36
|
+
workspaceId: string;
|
|
37
|
+
userId: string;
|
|
38
|
+
}
|
|
39
|
+
export declare const DEFAULT_LIST_LIMIT = 50;
|
|
40
|
+
export declare class NotificationRepository extends BaseSqliteRepository {
|
|
41
|
+
private readonly dbPath?;
|
|
42
|
+
private readonly cap;
|
|
43
|
+
constructor(opts?: {
|
|
44
|
+
dbPath?: string;
|
|
45
|
+
dbRoot?: string;
|
|
46
|
+
cap?: number;
|
|
47
|
+
});
|
|
48
|
+
resolveDbPath(): string;
|
|
49
|
+
private openHandle;
|
|
50
|
+
create(input: CreateNotificationInput): {
|
|
51
|
+
id: string;
|
|
52
|
+
};
|
|
53
|
+
private enforceCap;
|
|
54
|
+
list(params: ListNotificationsParams): NotificationListItem[];
|
|
55
|
+
unreadCount(params: UserScope): number;
|
|
56
|
+
markRead(params: MarkReadParams): boolean;
|
|
57
|
+
markAllRead(params: UserScope): number;
|
|
58
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { BaseSqliteRepository } from './base-sqlite-repository.js';
|
|
2
|
+
import type { Project as ProjectLedgerRow, ProjectCriterion as ProjectCriterionRow, ProjectEvent as ProjectEventRow } from '../schema/index.js';
|
|
3
|
+
export type ProjectScene = 'planning' | 'plan_review' | 'running' | 'human_wait' | 'limit_wait' | 'failed_stop' | 'analyzing_feedback' | 'replanned' | 'awaiting_review' | 'accepted';
|
|
4
|
+
export type CriterionVerifyStatus = 'pending' | 'verifying' | 'passed' | 'failed';
|
|
5
|
+
export type ProjectActorType = 'user' | 'project_manager' | 'system';
|
|
6
|
+
export type ProjectEventType = 'created' | 'plan_proposed' | 'plan_approved' | 'decision_requested' | 'decision_answered' | 'replanned' | 'stage_advanced' | 'criterion_verified' | 'scene_changed' | 'result_submitted' | 'accepted';
|
|
7
|
+
export type ProjectEvidenceKind = 'task' | 'wi' | 'url';
|
|
8
|
+
export interface ProjectStage {
|
|
9
|
+
key: string;
|
|
10
|
+
labelOverride: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare const DEFAULT_PROJECT_STAGE_KEYS: readonly ["outcome_plan", "contract_check", "feature_link", "use_verify", "result_review"];
|
|
13
|
+
export declare const DEFAULT_PROJECT_STAGES: readonly ProjectStage[];
|
|
14
|
+
export interface ProjectEvidence {
|
|
15
|
+
kind: ProjectEvidenceKind;
|
|
16
|
+
ref: string;
|
|
17
|
+
label?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ProjectActorInput {
|
|
20
|
+
actorType?: ProjectActorType;
|
|
21
|
+
actorId?: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface CreateProjectInput {
|
|
24
|
+
workspaceId: string;
|
|
25
|
+
name: string;
|
|
26
|
+
outcome: string;
|
|
27
|
+
dueDate?: string | null;
|
|
28
|
+
stages?: readonly ProjectStage[];
|
|
29
|
+
criteria: readonly string[];
|
|
30
|
+
}
|
|
31
|
+
export interface ListProjectsOptions {
|
|
32
|
+
includeArchived?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface ListProjectEventsOptions {
|
|
35
|
+
afterSeq?: number;
|
|
36
|
+
limit?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface AppendProjectEventInput extends ProjectActorInput {
|
|
39
|
+
projectId: string;
|
|
40
|
+
type: ProjectEventType;
|
|
41
|
+
title: string;
|
|
42
|
+
summary?: string | null;
|
|
43
|
+
payload?: Record<string, unknown>;
|
|
44
|
+
}
|
|
45
|
+
export interface SetCriterionVerifyInput extends ProjectActorInput {
|
|
46
|
+
projectId?: string;
|
|
47
|
+
criterionId: string;
|
|
48
|
+
verifyStatus?: CriterionVerifyStatus;
|
|
49
|
+
status?: CriterionVerifyStatus;
|
|
50
|
+
}
|
|
51
|
+
export interface SetCriterionEvidenceInput extends ProjectActorInput {
|
|
52
|
+
projectId?: string;
|
|
53
|
+
criterionId: string;
|
|
54
|
+
evidence: readonly ProjectEvidence[];
|
|
55
|
+
}
|
|
56
|
+
export interface AcceptProjectInput extends ProjectActorInput {
|
|
57
|
+
remainingRisks: unknown;
|
|
58
|
+
nextPlan: unknown;
|
|
59
|
+
lessons: unknown;
|
|
60
|
+
evidenceRefs: unknown;
|
|
61
|
+
}
|
|
62
|
+
export interface ProjectDetail extends ProjectLedgerRow {
|
|
63
|
+
stages: ProjectStage[];
|
|
64
|
+
criteria: ProjectCriterionRow[];
|
|
65
|
+
}
|
|
66
|
+
export declare class ProjectRepository extends BaseSqliteRepository {
|
|
67
|
+
private readonly dbPath?;
|
|
68
|
+
constructor(opts?: {
|
|
69
|
+
dbPath?: string;
|
|
70
|
+
dbRoot?: string;
|
|
71
|
+
});
|
|
72
|
+
resolveDbPath(): string;
|
|
73
|
+
private openHandle;
|
|
74
|
+
private getDetailFromHandle;
|
|
75
|
+
private getDetailOrThrow;
|
|
76
|
+
createProject(input: CreateProjectInput): ProjectDetail;
|
|
77
|
+
getProject(id: string): ProjectDetail | undefined;
|
|
78
|
+
listProjectsByWorkspace(workspaceId: string, options?: ListProjectsOptions): ProjectDetail[];
|
|
79
|
+
archiveProject(id: string): ProjectDetail;
|
|
80
|
+
setScene(id: string, scene: ProjectScene, actor?: ProjectActorInput): ProjectDetail;
|
|
81
|
+
setStageIndex(id: string, index: number, actor?: ProjectActorInput): ProjectDetail;
|
|
82
|
+
setCriterionVerify(input: SetCriterionVerifyInput): ProjectCriterionRow;
|
|
83
|
+
setCriterionVerify(projectId: string, criterionId: string, status: CriterionVerifyStatus, actor?: ProjectActorInput): ProjectCriterionRow;
|
|
84
|
+
setCriterionEvidence(input: SetCriterionEvidenceInput): ProjectCriterionRow;
|
|
85
|
+
setCriterionEvidence(projectId: string, criterionId: string, evidence: readonly ProjectEvidence[], actor?: ProjectActorInput): ProjectCriterionRow;
|
|
86
|
+
appendEvent(input: AppendProjectEventInput): ProjectEventRow;
|
|
87
|
+
appendEvent(projectId: string, input: Omit<AppendProjectEventInput, 'projectId'>): ProjectEventRow;
|
|
88
|
+
listEvents(projectId: string, options?: ListProjectEventsOptions): ProjectEventRow[];
|
|
89
|
+
acceptProject(id: string, input: AcceptProjectInput): ProjectDetail;
|
|
90
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export declare const REQUEST_LOG_MOVE_DEFAULT_BATCH_ROWS = 250;
|
|
2
|
+
export declare const REQUEST_LOG_MOVE_DEFAULT_BATCH_BYTES: number;
|
|
3
|
+
export declare const REQUEST_LOG_MOVE_CHECKPOINT_WAL_BYTES: number;
|
|
4
|
+
export declare const REQUEST_LOG_MOVE_CHECKPOINT_MIN_INTERVAL_MS = 5000;
|
|
5
|
+
export interface MoveRequestLogsProgress {
|
|
6
|
+
batches: number;
|
|
7
|
+
scannedRows: number;
|
|
8
|
+
movedRows: number;
|
|
9
|
+
bodiesAdded: number;
|
|
10
|
+
lastRowid: number;
|
|
11
|
+
elapsedMs: number;
|
|
12
|
+
deleteTxMs: number;
|
|
13
|
+
walBytes: number;
|
|
14
|
+
}
|
|
15
|
+
export interface MoveRequestLogsTestHooks {
|
|
16
|
+
afterRead?: (rows: ReadonlyArray<{
|
|
17
|
+
rowid: number;
|
|
18
|
+
id: string;
|
|
19
|
+
}>) => void;
|
|
20
|
+
afterLogsCommit?: (rows: ReadonlyArray<{
|
|
21
|
+
rowid: number;
|
|
22
|
+
id: string;
|
|
23
|
+
}>) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface MoveRequestLogsOptions {
|
|
26
|
+
crewxDbPath?: string;
|
|
27
|
+
batchRows?: number;
|
|
28
|
+
batchBytes?: number;
|
|
29
|
+
maxBatches?: number;
|
|
30
|
+
maxMs?: number;
|
|
31
|
+
dryRun?: boolean;
|
|
32
|
+
checkpointWalBytes?: number;
|
|
33
|
+
checkpointMinIntervalMs?: number;
|
|
34
|
+
onProgress?: (progress: MoveRequestLogsProgress) => void;
|
|
35
|
+
testHooks?: MoveRequestLogsTestHooks;
|
|
36
|
+
}
|
|
37
|
+
export interface MoveRequestLogsResult {
|
|
38
|
+
crewxDbPath: string;
|
|
39
|
+
logsDbPath: string;
|
|
40
|
+
dryRun: boolean;
|
|
41
|
+
movedRows: number;
|
|
42
|
+
remainingRows: number;
|
|
43
|
+
bodiesAdded: number;
|
|
44
|
+
batches: number;
|
|
45
|
+
maxDeleteTxMs: number;
|
|
46
|
+
deleteTxMs: number[];
|
|
47
|
+
maxWalBytes: number;
|
|
48
|
+
checkpoints: number;
|
|
49
|
+
elapsedMs: number;
|
|
50
|
+
sliceLimitReached: boolean;
|
|
51
|
+
scan?: {
|
|
52
|
+
rows: number;
|
|
53
|
+
bodies: number;
|
|
54
|
+
bodyBytes: number;
|
|
55
|
+
distinctBodies: number;
|
|
56
|
+
distinctBodyBytes: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export declare function moveRequestLogsToLogsDb(opts?: MoveRequestLogsOptions): MoveRequestLogsResult;
|
|
60
|
+
export interface RequestLogsMoveStatus {
|
|
61
|
+
crewxDbPath: string;
|
|
62
|
+
logsDbPath: string;
|
|
63
|
+
crewxRows: number;
|
|
64
|
+
crewxFreelistPages: number;
|
|
65
|
+
logsRows: number | null;
|
|
66
|
+
logsBodies: number | null;
|
|
67
|
+
logsFileBytes: number;
|
|
68
|
+
logsWalBytes: number;
|
|
69
|
+
}
|
|
70
|
+
export declare function inspectRequestLogsMove(crewxDbPath?: string): RequestLogsMoveStatus;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseSqliteRepository } from './base-sqlite-repository.js';
|
|
2
|
-
import { request_logs } from '../schema/index.js';
|
|
2
|
+
import type { request_logs } from '../schema/index.js';
|
|
3
3
|
export type RequestLogRow = typeof request_logs.$inferSelect;
|
|
4
4
|
export type NewRequestLog = typeof request_logs.$inferInsert;
|
|
5
5
|
export interface RequestLogEntry {
|
|
@@ -16,16 +16,20 @@ export interface RequestLogEntry {
|
|
|
16
16
|
userId?: string;
|
|
17
17
|
projectId?: string;
|
|
18
18
|
partitionKey?: string;
|
|
19
|
+
timestamp?: string;
|
|
19
20
|
metadata?: string;
|
|
20
21
|
}
|
|
21
22
|
export declare class RequestLogRepository extends BaseSqliteRepository {
|
|
22
23
|
private readonly dbPath?;
|
|
24
|
+
private writer?;
|
|
23
25
|
constructor(opts?: {
|
|
24
26
|
dbPath?: string;
|
|
25
27
|
dbRoot?: string;
|
|
26
28
|
});
|
|
27
29
|
resolveDbPath(): string;
|
|
28
|
-
|
|
30
|
+
resolveLogsDbPath(): string;
|
|
31
|
+
private ensureWriter;
|
|
29
32
|
bulkInsert(entries: RequestLogEntry[]): void;
|
|
30
|
-
|
|
33
|
+
private prepareRow;
|
|
34
|
+
close(): void;
|
|
31
35
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { BaseSqliteRepository } from './base-sqlite-repository.js';
|
|
2
|
+
export declare const STORAGE_METADATA_KINDS: readonly ["taskLogs", "requestLogs", "prompts", "threadsLedger", "tasksLedger"];
|
|
3
|
+
export declare const STORAGE_METADATA_UNITS: readonly ["task_log_events", "request_logs", "tasks", "threads"];
|
|
4
|
+
export type StorageMetadataKind = (typeof STORAGE_METADATA_KINDS)[number];
|
|
5
|
+
export type StorageMetadataUnit = (typeof STORAGE_METADATA_UNITS)[number];
|
|
6
|
+
export type StorageMetadataAge = 'over6m' | 'm3to6' | 'm1to3' | 'recent1m';
|
|
7
|
+
export interface StorageMetadataAggregateRow {
|
|
8
|
+
sourceKind: StorageMetadataKind;
|
|
9
|
+
age: StorageMetadataAge;
|
|
10
|
+
count: number;
|
|
11
|
+
bytes: number;
|
|
12
|
+
}
|
|
13
|
+
export interface StorageMetadataCutoffs {
|
|
14
|
+
cutoff6: string;
|
|
15
|
+
cutoff3: string;
|
|
16
|
+
cutoff1: string;
|
|
17
|
+
}
|
|
18
|
+
export interface StorageMetadataUnitReadiness {
|
|
19
|
+
cursorRowid: number;
|
|
20
|
+
endRowid: number | null;
|
|
21
|
+
complete: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface StorageMetadataReadiness {
|
|
24
|
+
ready: boolean;
|
|
25
|
+
units: Record<StorageMetadataUnit, StorageMetadataUnitReadiness>;
|
|
26
|
+
}
|
|
27
|
+
export interface StorageMetadataSnapshot {
|
|
28
|
+
readiness: StorageMetadataReadiness;
|
|
29
|
+
rows: StorageMetadataAggregateRow[];
|
|
30
|
+
}
|
|
31
|
+
export interface StorageMetadataBatchResult {
|
|
32
|
+
unit: StorageMetadataUnit | null;
|
|
33
|
+
rowsScanned: number;
|
|
34
|
+
rowsWritten: number;
|
|
35
|
+
cursorRowid: number;
|
|
36
|
+
complete: boolean;
|
|
37
|
+
ready: boolean;
|
|
38
|
+
elapsedMs: number;
|
|
39
|
+
}
|
|
40
|
+
export interface StorageMetadataVerificationMismatch {
|
|
41
|
+
sourceId: string;
|
|
42
|
+
metaBytes: number;
|
|
43
|
+
sourceBytes: number;
|
|
44
|
+
}
|
|
45
|
+
export declare class StorageMetadataRepository extends BaseSqliteRepository {
|
|
46
|
+
private readonly dbPath?;
|
|
47
|
+
constructor(opts?: {
|
|
48
|
+
dbPath?: string;
|
|
49
|
+
dbRoot?: string;
|
|
50
|
+
});
|
|
51
|
+
resolveDbPath(): string;
|
|
52
|
+
private hasReadableDatabase;
|
|
53
|
+
private openWritableDatabase;
|
|
54
|
+
private readReadiness;
|
|
55
|
+
private readAggregate;
|
|
56
|
+
getReadiness(): StorageMetadataReadiness;
|
|
57
|
+
aggregate(cutoffs: StorageMetadataCutoffs): StorageMetadataAggregateRow[];
|
|
58
|
+
readSnapshot(cutoffs: StorageMetadataCutoffs): StorageMetadataSnapshot;
|
|
59
|
+
runBackfillBatch(opts?: {
|
|
60
|
+
batchSize?: number;
|
|
61
|
+
unit?: StorageMetadataUnit;
|
|
62
|
+
}): StorageMetadataBatchResult;
|
|
63
|
+
verifySample(kind: StorageMetadataKind, limit: number): StorageMetadataVerificationMismatch[];
|
|
64
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type TaskLogMigrationMode = 'dry-run' | 'apply' | 'verify';
|
|
2
|
+
export declare const TASK_LOG_MIGRATION_TERMINAL_STATUSES: readonly ["success", "failed", "completed"];
|
|
3
|
+
export declare const TASK_LOG_MIGRATION_MIN_FREE_SPACE_BYTES: number;
|
|
4
|
+
export declare const TASK_LOG_MIGRATION_EVENT_ROW_BYTES = 256;
|
|
5
|
+
export type TaskLogVerificationIssueKind = 'malformed-blob' | 'mixed-source' | 'seq-gap' | 'duplicate-seq' | 'orphan-event' | 'count-mismatch' | 'source-invariant' | 'invalid-event';
|
|
6
|
+
export type TaskLogMigrationFailureKind = 'malformed' | 'mixed-source' | 'metadata' | 'invalid-source';
|
|
7
|
+
export interface TaskLogMigrationOptions {
|
|
8
|
+
mode: TaskLogMigrationMode;
|
|
9
|
+
dbPath?: string;
|
|
10
|
+
batchTasks?: number;
|
|
11
|
+
backupPath?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface TaskLogMigrationFailure {
|
|
14
|
+
taskId: string;
|
|
15
|
+
reason: string;
|
|
16
|
+
kind?: TaskLogMigrationFailureKind;
|
|
17
|
+
}
|
|
18
|
+
export interface TaskLogVerificationIssue {
|
|
19
|
+
taskId: string | null;
|
|
20
|
+
kind: TaskLogVerificationIssueKind;
|
|
21
|
+
reason: string;
|
|
22
|
+
expected?: number;
|
|
23
|
+
actual?: number;
|
|
24
|
+
seq?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface TaskLogVerificationReport {
|
|
27
|
+
checkedTasks: number;
|
|
28
|
+
eventSourceTasks: number;
|
|
29
|
+
blobSourceTasks: number;
|
|
30
|
+
eventCount: number;
|
|
31
|
+
orphanEventCount: number;
|
|
32
|
+
failedTasks: number;
|
|
33
|
+
issues: TaskLogVerificationIssue[];
|
|
34
|
+
}
|
|
35
|
+
export interface TaskLogMigrationReport {
|
|
36
|
+
mode: TaskLogMigrationMode;
|
|
37
|
+
ok: boolean;
|
|
38
|
+
dbPath: string;
|
|
39
|
+
backupPath?: string;
|
|
40
|
+
backupMethod?: 'sqlite-online-backup';
|
|
41
|
+
blockedReason?: string;
|
|
42
|
+
activeTaskCount: number;
|
|
43
|
+
taskCount: number;
|
|
44
|
+
candidateTaskCount: number;
|
|
45
|
+
eligibleTaskCount: number;
|
|
46
|
+
statusCounts: Record<string, number>;
|
|
47
|
+
deferredTaskCount: number;
|
|
48
|
+
deferredStatusCounts: Record<string, number>;
|
|
49
|
+
entryCount: number;
|
|
50
|
+
sourceBytes: number;
|
|
51
|
+
estimatedFreeSpaceBytes: number;
|
|
52
|
+
requiredFreeSpaceBytes: number;
|
|
53
|
+
availableFreeSpaceBytes: number;
|
|
54
|
+
minimumFreeSpaceReserveBytes: number;
|
|
55
|
+
freeSpaceGatePassed: boolean;
|
|
56
|
+
migratedTasks: number;
|
|
57
|
+
migratedEntries: number;
|
|
58
|
+
skippedTasks: number;
|
|
59
|
+
failedTasks: number;
|
|
60
|
+
malformedRows: TaskLogMigrationFailure[];
|
|
61
|
+
failures: TaskLogMigrationFailure[];
|
|
62
|
+
logicalSourceBytesRemoved: number;
|
|
63
|
+
warnings: string[];
|
|
64
|
+
remainingTaskCount: number;
|
|
65
|
+
verification?: TaskLogVerificationReport;
|
|
66
|
+
}
|
|
67
|
+
export declare function resolveTaskLogMigrationDbPath(dbPath?: string): string;
|
|
68
|
+
export declare function hasSufficientTaskLogMigrationFreeSpace(availableFreeSpaceBytes: number, estimatedFreeSpaceBytes: number): boolean;
|
|
69
|
+
export interface TaskLogWalCheckpointConnection {
|
|
70
|
+
pragma(pragma: string): unknown;
|
|
71
|
+
}
|
|
72
|
+
export declare function tryCheckpointTaskLogWal(db: TaskLogWalCheckpointConnection): string | undefined;
|
|
73
|
+
export declare function runTaskLogMigration(options: TaskLogMigrationOptions): Promise<TaskLogMigrationReport>;
|
|
74
|
+
export declare function taskLogBackupName(backupPath: string): string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BaseSqliteRepository } from './base-sqlite-repository.js';
|
|
2
|
+
export type TaskLogStorage = 'blob' | 'events';
|
|
3
|
+
export interface TaskLogEntry {
|
|
4
|
+
timestamp: string;
|
|
5
|
+
level: string;
|
|
6
|
+
message: string;
|
|
7
|
+
}
|
|
8
|
+
export type RawTaskLogEntry = TaskLogEntry;
|
|
9
|
+
export type TaskLogRawEntry = TaskLogEntry;
|
|
10
|
+
export interface TaskLogState {
|
|
11
|
+
taskId: string;
|
|
12
|
+
source: TaskLogStorage;
|
|
13
|
+
revision: number;
|
|
14
|
+
lastSeq: number;
|
|
15
|
+
}
|
|
16
|
+
export interface TaskLogReadResult extends TaskLogState {
|
|
17
|
+
entries: TaskLogEntry[];
|
|
18
|
+
}
|
|
19
|
+
export interface TaskLogRepositoryContract {
|
|
20
|
+
appendLog(taskId: string, entry: TaskLogEntry): TaskLogState;
|
|
21
|
+
appendLogs(taskId: string, entries: readonly TaskLogEntry[]): TaskLogState;
|
|
22
|
+
readLogs(taskId: string): TaskLogReadResult | undefined;
|
|
23
|
+
readLogsTail(taskId: string, limit: number): TaskLogReadResult | undefined;
|
|
24
|
+
getLogState(taskId: string): TaskLogState | undefined;
|
|
25
|
+
}
|
|
26
|
+
export declare class TaskLogRepository extends BaseSqliteRepository implements TaskLogRepositoryContract {
|
|
27
|
+
private readonly dbPath?;
|
|
28
|
+
constructor(opts?: {
|
|
29
|
+
dbPath?: string;
|
|
30
|
+
dbRoot?: string;
|
|
31
|
+
});
|
|
32
|
+
resolveDbPath(): string;
|
|
33
|
+
private openHandle;
|
|
34
|
+
private findStateRow;
|
|
35
|
+
private findStateRowInTransaction;
|
|
36
|
+
private requireStateRowInTransaction;
|
|
37
|
+
appendLog(taskId: string, entry: TaskLogEntry): TaskLogState;
|
|
38
|
+
appendLogs(taskId: string, entries: readonly TaskLogEntry[]): TaskLogState;
|
|
39
|
+
getLogState(taskId: string): TaskLogState | undefined;
|
|
40
|
+
readLogs(taskId: string): TaskLogReadResult | undefined;
|
|
41
|
+
readLogsTail(taskId: string, limit: number): TaskLogReadResult | undefined;
|
|
42
|
+
readTail(taskId: string, limit: number): TaskLogReadResult | undefined;
|
|
43
|
+
private readLogsInternal;
|
|
44
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type TaskStatus = 'pending' | 'running' | 'paused' | 'success' | 'failed' | 'stopped';
|
|
2
|
+
export declare const TASK_TERMINAL_STATUSES: readonly ["success", "failed", "stopped"];
|
|
3
|
+
export declare const TASK_TERMINAL_STORED_STATUSES: readonly ["success", "completed", "done", "failed", "error", "stopped", "runner_lost"];
|
|
4
|
+
export declare function storedTaskStatusesFor(statuses: readonly string[]): string[];
|
|
5
|
+
export type TaskTerminalStatus = (typeof TASK_TERMINAL_STATUSES)[number];
|
|
6
|
+
export type TaskTerminalReason = 'user_stop' | 'runner_lost' | 'launch_failed';
|
|
7
|
+
export declare const LEGACY_TASK_TERMINAL_ERROR_PATTERNS: {
|
|
8
|
+
readonly stopped: RegExp;
|
|
9
|
+
readonly runnerLost: RegExp;
|
|
10
|
+
};
|
|
11
|
+
export interface TaskStatusInput {
|
|
12
|
+
status: string;
|
|
13
|
+
error?: string | null;
|
|
14
|
+
metadata?: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare function readTaskTerminalReason(row: TaskStatusInput): TaskTerminalReason | undefined;
|
|
17
|
+
export declare function normalizeTaskStatus(row: TaskStatusInput): TaskStatus;
|
|
18
|
+
export declare function normalizeTaskRow<T extends TaskStatusInput>(row: T): Omit<T, 'status'> & {
|
|
19
|
+
status: TaskStatus;
|
|
20
|
+
};
|
|
21
|
+
export declare function isTaskRetryableByDefault(row: TaskStatusInput): boolean;
|