@crewx/sdk 0.9.0-rc.31 → 0.9.0-rc.33

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.
@@ -0,0 +1,199 @@
1
+ export declare const agent_suggestions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "agent_suggestions";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "agent_suggestions";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ workspace_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "workspace_id";
26
+ tableName: "agent_suggestions";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ agent_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "agent_id";
45
+ tableName: "agent_suggestions";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ task_id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "task_id";
64
+ tableName: "agent_suggestions";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: false;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ type: import("drizzle-orm/sqlite-core").SQLiteColumn<{
82
+ name: "type";
83
+ tableName: "agent_suggestions";
84
+ dataType: "string";
85
+ columnType: "SQLiteText";
86
+ data: string;
87
+ driverParam: string;
88
+ notNull: true;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: [string, ...string[]];
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {
98
+ length: number | undefined;
99
+ }>;
100
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
101
+ name: "status";
102
+ tableName: "agent_suggestions";
103
+ dataType: "string";
104
+ columnType: "SQLiteText";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: true;
108
+ hasDefault: true;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}, {
117
+ length: number | undefined;
118
+ }>;
119
+ payload: import("drizzle-orm/sqlite-core").SQLiteColumn<{
120
+ name: "payload";
121
+ tableName: "agent_suggestions";
122
+ dataType: "string";
123
+ columnType: "SQLiteText";
124
+ data: string;
125
+ driverParam: string;
126
+ notNull: true;
127
+ hasDefault: false;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: [string, ...string[]];
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {
136
+ length: number | undefined;
137
+ }>;
138
+ applied_commit_sha: import("drizzle-orm/sqlite-core").SQLiteColumn<{
139
+ name: "applied_commit_sha";
140
+ tableName: "agent_suggestions";
141
+ dataType: "string";
142
+ columnType: "SQLiteText";
143
+ data: string;
144
+ driverParam: string;
145
+ notNull: false;
146
+ hasDefault: false;
147
+ isPrimaryKey: false;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: [string, ...string[]];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {
155
+ length: number | undefined;
156
+ }>;
157
+ created_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
158
+ name: "created_at";
159
+ tableName: "agent_suggestions";
160
+ dataType: "string";
161
+ columnType: "SQLiteText";
162
+ data: string;
163
+ driverParam: string;
164
+ notNull: true;
165
+ hasDefault: false;
166
+ isPrimaryKey: false;
167
+ isAutoincrement: false;
168
+ hasRuntimeDefault: false;
169
+ enumValues: [string, ...string[]];
170
+ baseColumn: never;
171
+ identity: undefined;
172
+ generated: undefined;
173
+ }, {}, {
174
+ length: number | undefined;
175
+ }>;
176
+ updated_at: import("drizzle-orm/sqlite-core").SQLiteColumn<{
177
+ name: "updated_at";
178
+ tableName: "agent_suggestions";
179
+ dataType: "string";
180
+ columnType: "SQLiteText";
181
+ data: string;
182
+ driverParam: string;
183
+ notNull: true;
184
+ hasDefault: false;
185
+ isPrimaryKey: false;
186
+ isAutoincrement: false;
187
+ hasRuntimeDefault: false;
188
+ enumValues: [string, ...string[]];
189
+ baseColumn: never;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }, {}, {
193
+ length: number | undefined;
194
+ }>;
195
+ };
196
+ dialect: "sqlite";
197
+ }>;
198
+ export type AgentSuggestion = typeof agent_suggestions.$inferSelect;
199
+ export type NewAgentSuggestion = typeof agent_suggestions.$inferInsert;
@@ -8,3 +8,4 @@ export * from './request-logs.js';
8
8
  export * from './usage-limit-snapshots.js';
9
9
  export * from './usage-reports.js';
10
10
  export * from './notifications.js';
11
+ export * from './agent-suggestions.js';
@@ -397,6 +397,13 @@ export interface GuideRule {
397
397
  say: string;
398
398
  once?: boolean;
399
399
  }
400
+ export declare const SettingsSchema: z.ZodObject<{
401
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
402
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
403
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
404
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
405
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
406
+ }, z.ZodUnknown, "strip">>;
400
407
  export declare const CrewxProjectConfigSchema: z.ZodObject<{
401
408
  agents: z.ZodOptional<z.ZodArray<z.ZodObject<{
402
409
  id: z.ZodString;
@@ -685,7 +692,13 @@ export declare const CrewxProjectConfigSchema: z.ZodObject<{
685
692
  }>>;
686
693
  }, z.ZodUnknown, "strip">>, "many">>;
687
694
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
688
- settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
695
+ settings: z.ZodOptional<z.ZodObject<{
696
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
697
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
698
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
699
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
700
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
701
+ }, z.ZodUnknown, "strip">>>;
689
702
  skills: z.ZodOptional<z.ZodUnknown>;
690
703
  layouts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
691
704
  documents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -977,7 +990,13 @@ export declare const CrewxProjectConfigSchema: z.ZodObject<{
977
990
  }>>;
978
991
  }, z.ZodUnknown, "strip">>, "many">>;
979
992
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
980
- settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
993
+ settings: z.ZodOptional<z.ZodObject<{
994
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
995
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
996
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
997
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
998
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
999
+ }, z.ZodUnknown, "strip">>>;
981
1000
  skills: z.ZodOptional<z.ZodUnknown>;
982
1001
  layouts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
983
1002
  documents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -1269,7 +1288,13 @@ export declare const CrewxProjectConfigSchema: z.ZodObject<{
1269
1288
  }>>;
1270
1289
  }, z.ZodUnknown, "strip">>, "many">>;
1271
1290
  hooks: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
1272
- settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1291
+ settings: z.ZodOptional<z.ZodObject<{
1292
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
1293
+ }, "strip", z.ZodUnknown, z.objectOutputType<{
1294
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
1295
+ }, z.ZodUnknown, "strip">, z.objectInputType<{
1296
+ bin_resolution: z.ZodOptional<z.ZodEnum<["global_first", "local_first"]>>;
1297
+ }, z.ZodUnknown, "strip">>>;
1273
1298
  skills: z.ZodOptional<z.ZodUnknown>;
1274
1299
  layouts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1275
1300
  documents: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -1,4 +1,4 @@
1
- export type EntityPrefix = 'tsk' | 'thd' | 'msg' | 'box' | 'prj' | 'mem' | 'spn' | 'cron' | 'wbs' | 'job' | 'tcl' | 'req' | 'ws' | 'wfr' | 'ntf';
1
+ export type EntityPrefix = 'tsk' | 'thd' | 'msg' | 'box' | 'prj' | 'mem' | 'spn' | 'cron' | 'wbs' | 'job' | 'tcl' | 'req' | 'ws' | 'wfr' | 'ntf' | 'sug';
2
2
  export type PrefixedId<P extends EntityPrefix> = `${P}_${string}`;
3
3
  export declare function generateId<P extends EntityPrefix>(prefix: P): PrefixedId<P>;
4
4
  export declare function generateFingerprint<P extends EntityPrefix>(prefix: P, input: string): PrefixedId<P>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/sdk",
3
- "version": "0.9.0-rc.31",
3
+ "version": "0.9.0-rc.33",
4
4
  "license": "UNLICENSED",
5
5
  "engines": {
6
6
  "node": ">=20.19.0"
@@ -433,7 +433,7 @@ agents:
433
433
  name: "CrewX Assistant"
434
434
  role: "assistant"
435
435
  team: "CrewX"
436
- provider: ["cli/claude", "cli/gemini", "cli/copilot"] # Fallback order: claude → gemini → copilot
436
+ provider: ["cli/codex", "cli/claude", "cli/opencode", "cli/copilot"] # Fallback order: codex → claude → opencode → copilot
437
437
  working_directory: "."
438
438
  # Note: Uses provider array for automatic fallback when no model is specified
439
439
  inline:
@@ -584,3 +584,44 @@ agents:
584
584
  options:
585
585
  query: ["exec", "--experimental-json"]
586
586
  execute: ["exec", "-s", "workspace-write", "--experimental-json"]
587
+
588
+ - id: "self_improve_analyst"
589
+ name: "Self-Improve Analyst"
590
+ role: "Prompt Improvement Analyst"
591
+ team: "CrewX"
592
+ description: "에이전트 프롬프트 개선 제안 분석 에이전트 (개선 제안 H1)"
593
+ provider: ["cli/codex", "cli/claude", "cli/opencode", "cli/copilot"] # Fallback order: codex → claude → opencode → copilot
594
+ working_directory: "."
595
+ env:
596
+ GIT_AUTHOR_NAME: '{{agent.name}}'
597
+ GIT_AUTHOR_EMAIL: crewx+{{agent.id}}@sowonlabs.com
598
+ options:
599
+ query:
600
+ effort: high
601
+ mode: auto
602
+ execute:
603
+ effort: high
604
+ mode: auto
605
+ inline:
606
+ layout: crewx/minimal
607
+ prompt: |-
608
+ You are the Self-Improve Analyst agent for CrewX. Your job is to analyze a
609
+ target agent's usage history and propose concrete improvements to that
610
+ agent's prompt documentation.
611
+
612
+ ## Task
613
+ Each request gives you one target agent's memory summary, recent failed
614
+ tasks, and rework rate. Locate and read that agent's actual prompt
615
+ documentation (.md files in this repository) before proposing anything —
616
+ never propose changes to crewx.yaml itself.
617
+
618
+ ## Rules
619
+ - Never fabricate evidence. If you find no clear, well-supported
620
+ improvement, return an empty JSON array.
621
+ - You have read access to the repository. Do not modify any files
622
+ yourself — you only propose changes; a separate system applies them
623
+ after review.
624
+ - Output ONLY the JSON specified in the request message — no prose, no
625
+ markdown outside the JSON block.
626
+ skills:
627
+ include: []