@crewx/sdk 0.9.0-rc.4 → 0.9.0-rc.41

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.
Files changed (70) hide show
  1. package/README.md +1 -1
  2. package/dist/config/canonicalize-agent-options.d.ts +16 -0
  3. package/dist/config/global-settings.d.ts +19 -0
  4. package/dist/config/models.generated.d.ts +22 -0
  5. package/dist/config/models.remote.d.ts +4 -0
  6. package/dist/config/overdrive.d.ts +29 -0
  7. package/dist/config/pricing.d.ts +8 -8
  8. package/dist/config/pricing.generated.d.ts +2 -0
  9. package/dist/config/pricing.remote.d.ts +4 -0
  10. package/dist/config/pricing.types.d.ts +5 -0
  11. package/dist/config/timeout.config.d.ts +3 -0
  12. package/dist/config/wi-boards.d.ts +15 -0
  13. package/dist/esm/index.js +125 -82
  14. package/dist/esm/plugins/index.js +118 -71
  15. package/dist/esm/repository/index.js +122 -75
  16. package/dist/esm/testing/index.js +1 -1
  17. package/dist/events/types.d.ts +2 -0
  18. package/dist/facade/Crewx.d.ts +12 -0
  19. package/dist/index.browser.d.ts +1 -1
  20. package/dist/index.browser.js +2 -2
  21. package/dist/index.d.ts +17 -6
  22. package/dist/index.js +126 -83
  23. package/dist/internal/windows-spawn.d.ts +10 -0
  24. package/dist/migrations/0008_careful_black_bird.sql +17 -0
  25. package/dist/migrations/0009_hot_dark_phoenix.sql +1 -0
  26. package/dist/migrations/0010_analyze_stats.sql +6 -0
  27. package/dist/migrations/0011_far_black_tarantula.sql +1 -0
  28. package/dist/migrations/0012_blue_turbo.sql +23 -0
  29. package/dist/migrations/0013_hesitant_adam_destine.sql +15 -0
  30. package/dist/migrations/meta/0008_snapshot.json +1327 -0
  31. package/dist/migrations/meta/0009_snapshot.json +1335 -0
  32. package/dist/migrations/meta/0010_snapshot.json +1335 -0
  33. package/dist/migrations/meta/0011_snapshot.json +1342 -0
  34. package/dist/migrations/meta/0012_snapshot.json +1494 -0
  35. package/dist/migrations/meta/0013_snapshot.json +1592 -0
  36. package/dist/migrations/meta/_journal.json +42 -0
  37. package/dist/plugin/types.d.ts +1 -0
  38. package/dist/plugins/index.js +118 -71
  39. package/dist/provider/acp/adapters/claude.d.ts +0 -4
  40. package/dist/provider/acp/connection.d.ts +4 -0
  41. package/dist/provider/acp/meta.d.ts +4 -0
  42. package/dist/provider/bridge.d.ts +13 -1
  43. package/dist/provider/cli/adapter.types.d.ts +1 -0
  44. package/dist/provider/cli/adapters/claude.d.ts +0 -1
  45. package/dist/provider/cli/adapters/cli-knob.util.d.ts +2 -0
  46. package/dist/provider/cli/meta.d.ts +10 -2
  47. package/dist/provider/errors.d.ts +1 -0
  48. package/dist/provider/idle-watchdog.d.ts +19 -0
  49. package/dist/provider/models.d.ts +23 -0
  50. package/dist/provider/order.d.ts +1 -0
  51. package/dist/provider/parse-usage.d.ts +6 -0
  52. package/dist/provider/provider-selection.d.ts +8 -0
  53. package/dist/repository/agent-suggestion.repository.d.ts +34 -0
  54. package/dist/repository/index.d.ts +7 -1
  55. package/dist/repository/index.js +122 -75
  56. package/dist/repository/notification.repository.d.ts +58 -0
  57. package/dist/repository/task.repository.d.ts +79 -0
  58. package/dist/repository/thread.repository.d.ts +16 -2
  59. package/dist/repository/usage-report.repository.d.ts +27 -0
  60. package/dist/schema/agent-suggestions.d.ts +199 -0
  61. package/dist/schema/index.d.ts +3 -0
  62. package/dist/schema/notifications.d.ts +303 -0
  63. package/dist/schema/usage-reports.d.ts +252 -0
  64. package/dist/testing/index.d.ts +2 -0
  65. package/dist/testing/index.js +1 -1
  66. package/dist/types/index.d.ts +141 -3
  67. package/dist/utils/id.d.ts +1 -1
  68. package/package.json +3 -2
  69. package/templates/agents/default.yaml +175 -117
  70. package/templates/documents/crewx-manual.md +138 -138
@@ -12,6 +12,10 @@ export interface AcpProviderMetaResult {
12
12
  id: string;
13
13
  name?: string;
14
14
  }>;
15
+ modelOverrides?: Record<string, {
16
+ effort?: string[];
17
+ defaultEffort?: string;
18
+ }>;
15
19
  capabilities: Record<string, boolean>;
16
20
  }
17
21
  declare function extractProviderMeta(adapterId: string, displayName: string | undefined, initResponse: InitializeResponse, sessionResponse: NewSessionResponse): AcpProviderMetaResult;
@@ -3,8 +3,10 @@ export declare function parseStreamJsonOutput(raw: string): string;
3
3
  export declare function parseResultEventUsage(raw: string): ProviderUsage | null;
4
4
  export { ProviderError, IdleTimeoutError, TotalTimeoutError, type ProviderErrorCode, type ProviderErrorKind, type ProviderErrorOptions, } from './errors.js';
5
5
  export declare function shouldFallbackToGhCopilot(providerId: string, err: unknown, platform?: NodeJS.Platform): boolean;
6
+ export declare const KILL_GRACE_MS = 2000;
6
7
  export interface RunCliProcessOptions {
7
8
  timeoutMs?: number;
9
+ idleMs?: number;
8
10
  env?: Record<string, string>;
9
11
  cwd?: string;
10
12
  onOutput?: (line: string, level: 'stdout' | 'stderr') => void;
@@ -37,6 +39,11 @@ export declare class ClientToolCallRequiredError extends Error {
37
39
  constructor(toolCall: ClientToolCall, continuationState: ContinuationState);
38
40
  }
39
41
  export type ProviderFactory = (id: string, providerStr: string) => ProviderRuntime;
42
+ export type AdditionalArgsProvider = (ctx: {
43
+ providerStr: string;
44
+ providerId: string;
45
+ mode?: string;
46
+ }) => string[];
40
47
  export declare function registerProviderFactory(namespace: string, factory: ProviderFactory): void;
41
48
  export interface ProviderUsage {
42
49
  inputTokens: number;
@@ -62,6 +69,7 @@ export interface ProviderQueryOptions {
62
69
  env?: Record<string, string>;
63
70
  cwd?: string;
64
71
  timeoutMs?: number;
72
+ idleMs?: number;
65
73
  configOptions?: Record<string, string>;
66
74
  tools?: import('../facade/Crewx').ToolDefinition[];
67
75
  maxSteps?: number;
@@ -76,4 +84,8 @@ export interface ProviderRuntime {
76
84
  }>, options?: ProviderQueryOptions): Promise<string>;
77
85
  dispose?(): Promise<void>;
78
86
  }
79
- export declare function createProvider(providerStr: string): ProviderRuntime;
87
+ export declare function createProvider(providerStr: string, additionalArgsProvider?: AdditionalArgsProvider): ProviderRuntime;
88
+ export declare function mergeAdditionalArgs(options: ProviderQueryOptions | undefined, provider: AdditionalArgsProvider | undefined, ctx: {
89
+ providerStr: string;
90
+ providerId: string;
91
+ }): ProviderQueryOptions;
@@ -13,6 +13,7 @@ export interface CliProviderAdapter {
13
13
  query?: number;
14
14
  execute?: number;
15
15
  };
16
+ defaultIdleMs?: number;
16
17
  capabilities?: {
17
18
  resume?: boolean;
18
19
  image?: boolean;
@@ -1,3 +1,2 @@
1
1
  import type { CliProviderAdapter } from '../adapter.types.js';
2
- export declare function _testOnlyResetEffortWarn(): void;
3
2
  export declare const claudeAdapter: CliProviderAdapter;
@@ -3,5 +3,7 @@ export declare function decodeModelEffort(model?: string): {
3
3
  effort?: string;
4
4
  };
5
5
  export declare function codexModeArgs(mode?: string): string[];
6
+ export declare function codexResumeModeArgs(mode?: string): string[];
6
7
  export declare function codexEffortArgs(effort?: string): string[];
7
8
  export declare function claudeModeArgs(mode?: string): string[];
9
+ export declare function claudeEffortArgs(effort?: string): string[];
@@ -1,4 +1,12 @@
1
1
  import type { AcpProviderMetaResult } from '../acp/meta.js';
2
2
  import type { CliProviderAdapter } from './adapter.types.js';
3
- export declare function cliAdapterMetaToProviderMeta(key: string, adapter: CliProviderAdapter): AcpProviderMetaResult | null;
4
- export declare function queryAllCliProviderMetas(): AcpProviderMetaResult[];
3
+ export declare function queryOpencodeModels(): Promise<Array<{
4
+ id: string;
5
+ }>>;
6
+ export declare function cliAdapterMetaToProviderMeta(key: string, adapter: CliProviderAdapter, overrideModels?: Array<{
7
+ id: string;
8
+ name?: string;
9
+ }>): AcpProviderMetaResult | null;
10
+ export declare function queryAllCliProviderMetas(options?: {
11
+ includeOpencodeRuntimeModels?: boolean;
12
+ }): Promise<AcpProviderMetaResult[]>;
@@ -10,6 +10,7 @@ export declare class ProviderError extends Error {
10
10
  readonly code: ProviderErrorCode;
11
11
  readonly kind?: ProviderErrorKind;
12
12
  readonly retryAfterMs?: number;
13
+ stdout?: string;
13
14
  constructor(message: string, providerStr: string, options?: ProviderErrorOptions);
14
15
  }
15
16
  export declare class IdleTimeoutError extends ProviderError {
@@ -0,0 +1,19 @@
1
+ export interface IdleWatchdogOptions {
2
+ timeoutMs: number;
3
+ onIdle: () => void;
4
+ now?: () => number;
5
+ }
6
+ export declare class IdleWatchdog {
7
+ private readonly timeoutMs;
8
+ private readonly onIdleCb;
9
+ private readonly now;
10
+ private timer;
11
+ private lastActivity;
12
+ private settled;
13
+ constructor(options: IdleWatchdogOptions);
14
+ start(): void;
15
+ refresh(): void;
16
+ stop(): void;
17
+ private scheduleCheck;
18
+ private fireIdle;
19
+ }
@@ -0,0 +1,23 @@
1
+ import { type ModelCatalogEntry, type ProviderCatalogEntry, type ProviderModeEntry, type ProviderModelOverride } from '../config/models.generated.js';
2
+ export type { ModelCatalogEntry, ProviderCatalogEntry, ProviderModeEntry, ProviderModelOverride, } from '../config/models.generated.js';
3
+ export declare function setModelsOverride(providers: Record<string, ProviderCatalogEntry | ModelCatalogEntry[]>): void;
4
+ export declare function clearModelsOverride(): void;
5
+ export declare function getProviderModels(provider: string): ModelCatalogEntry[];
6
+ export declare function getProviderCatalog(provider: string): ProviderCatalogEntry;
7
+ export declare function getProviderModes(provider: string): ProviderModeEntry[];
8
+ export declare function getProviderEffort(provider: string, model?: string): string[];
9
+ export declare function getProviderModelOverrides(provider: string): Record<string, ProviderModelOverride>;
10
+ export declare function getClaudeModels(): ModelCatalogEntry[];
11
+ export declare function getCodexModels(): ModelCatalogEntry[];
12
+ export declare function getCopilotModels(): ModelCatalogEntry[];
13
+ export declare function getAntigravityModels(): ModelCatalogEntry[];
14
+ export declare function mergeModels(a: Array<{
15
+ id: string;
16
+ name?: string;
17
+ }>, b: Array<{
18
+ id: string;
19
+ name?: string;
20
+ }>): Array<{
21
+ id: string;
22
+ name?: string;
23
+ }>;
@@ -1,3 +1,4 @@
1
1
  export declare const PROVIDER_ORDER: readonly ["codex", "claude", "opencode", "antigravity", "copilot"];
2
2
  export declare function providerRank(id: string): number;
3
3
  export declare function compareProviders(a: string, b: string): number;
4
+ export declare function normalizeProviderId(provider?: string): string;
@@ -3,4 +3,10 @@ export interface ParsedUsage {
3
3
  outputTokens: number;
4
4
  cachedInputTokens: number;
5
5
  }
6
+ export interface ClaudePartialUsage {
7
+ inputTokens: number;
8
+ cachedInputTokens: number;
9
+ model?: string;
10
+ }
11
+ export declare function parseClaudePartialUsage(stdout: string): ClaudePartialUsage | undefined;
6
12
  export declare function parseUsage(stdout: string): ParsedUsage | undefined;
@@ -0,0 +1,8 @@
1
+ import type { CliProviderAdapter } from './cli/adapter.types.js';
2
+ export declare function lookupCliAdapter(providerStr: string): CliProviderAdapter | undefined;
3
+ export type ProviderAvailabilityDeps = {
4
+ lookupAdapter?: (providerStr: string) => CliProviderAdapter | undefined;
5
+ env?: NodeJS.ProcessEnv;
6
+ };
7
+ export declare function isProviderAvailable(providerStr: string, deps?: ProviderAvailabilityDeps): boolean;
8
+ export declare function selectAvailableProvider(providers: string | string[], deps?: ProviderAvailabilityDeps): string;
@@ -0,0 +1,34 @@
1
+ import { BaseSqliteRepository } from './base-sqlite-repository.js';
2
+ import { agent_suggestions } from '../schema/index.js';
3
+ export type AgentSuggestionRow = typeof agent_suggestions.$inferSelect;
4
+ export type NewAgentSuggestion = typeof agent_suggestions.$inferInsert;
5
+ export type SuggestionType = 'H1' | 'H3';
6
+ export type SuggestionStatus = 'pending' | 'applied' | 'dismissed';
7
+ export interface CreateAgentSuggestionInput {
8
+ workspaceId: string;
9
+ agentId: string;
10
+ taskId?: string | null;
11
+ type: SuggestionType;
12
+ status?: SuggestionStatus;
13
+ payload: string;
14
+ appliedCommitSha?: string | null;
15
+ }
16
+ export declare const DEFAULT_LIST_LIMIT = 50;
17
+ export declare class AgentSuggestionRepository extends BaseSqliteRepository {
18
+ private readonly dbPath?;
19
+ constructor(opts?: {
20
+ dbPath?: string;
21
+ dbRoot?: string;
22
+ });
23
+ resolveDbPath(): string;
24
+ private openHandle;
25
+ create(rows: CreateAgentSuggestionInput[]): {
26
+ ids: string[];
27
+ };
28
+ findLatestSet(workspaceId: string, agentId: string): AgentSuggestionRow[];
29
+ findSetByTaskId(workspaceId: string, agentId: string, taskId: string): AgentSuggestionRow[];
30
+ findById(workspaceId: string, agentId: string, suggestionId: string): AgentSuggestionRow | null;
31
+ updateStatus(id: string, status: SuggestionStatus, appliedCommitSha?: string | null): boolean;
32
+ listByAgent(workspaceId: string, agentId: string, limit?: number): AgentSuggestionRow[];
33
+ findDismissed(workspaceId: string, agentId: string, limit?: number): AgentSuggestionRow[];
34
+ }
@@ -11,7 +11,7 @@ export type { PushResult } from './push.js';
11
11
  export type { Workspace, NewWorkspace } from '../schema/index.js';
12
12
  export { tasks } from '../schema/index.js';
13
13
  export { TaskRepository } from './task.repository.js';
14
- export type { TaskRow, NewTask, AgentUsageRow, TrendRow, ProviderUsageRow } from './task.repository.js';
14
+ export type { TaskRow, TaskListRow, NewTask, AgentUsageRow, TrendRow, ProviderUsageRow, ModelUsageRow, ReportTaskRow, WorkflowCardRow, } from './task.repository.js';
15
15
  export { ThreadRepository } from './thread.repository.js';
16
16
  export type { ThreadRow, NewThread } from './thread.repository.js';
17
17
  export { SpanRepository } from './span.repository.js';
@@ -24,3 +24,9 @@ export { RequestLogRepository } from './request-log.repository.js';
24
24
  export type { RequestLogRow, NewRequestLog, RequestLogEntry } from './request-log.repository.js';
25
25
  export { UsageLimitSnapshotRepository, calcBucketStart } from './usage-limit-snapshot.repository.js';
26
26
  export type { UsageLimitSnapshotRow, NewUsageLimitSnapshot, UpsertSnapshotInput, LimitTrendPoint, LimitTrendProvider, } from './usage-limit-snapshot.repository.js';
27
+ export { UsageReportRepository } from './usage-report.repository.js';
28
+ export type { UsageReportRow, NewUsageReport, PublishReportInput } from './usage-report.repository.js';
29
+ export { NotificationRepository, DEFAULT_NOTIFICATION_CAP, DEFAULT_LIST_LIMIT as DEFAULT_NOTIFICATION_LIST_LIMIT, } from './notification.repository.js';
30
+ export type { NotificationRow, NewNotification, NotificationReadRow, NotificationLevel, NotificationSource, CreateNotificationInput, NotificationListItem, ListNotificationsParams, UserScope as NotificationUserScope, MarkReadParams as NotificationMarkReadParams, } from './notification.repository.js';
31
+ export { AgentSuggestionRepository, DEFAULT_LIST_LIMIT as DEFAULT_AGENT_SUGGESTION_LIST_LIMIT, } from './agent-suggestion.repository.js';
32
+ export type { AgentSuggestionRow, NewAgentSuggestion, SuggestionType, SuggestionStatus, CreateAgentSuggestionInput, } from './agent-suggestion.repository.js';