@shipfox/api-agent-dto 9.0.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  $ shipfox-swc
2
- Successfully compiled: 11 files with swc (347.64ms)
2
+ Successfully compiled: 11 files with swc (305.45ms)
package/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # @shipfox/api-agent-dto
2
2
 
3
+ ## 12.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ee2ce67: Accept a `${{ }}` interpolation in an agent step's `thinking` field. The schema
8
+ still offers the per-harness enum for editor completion, and the dispatcher
9
+ checks the resolved value against the harness levels. An unsupported
10
+ resolved level fails the step.
11
+ - 28daafe: Validate literal agent model and provider values during workflow authoring.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [ee2ce67]
16
+ - Updated dependencies [e95fdf4]
17
+ - Updated dependencies [f78740d]
18
+ - Updated dependencies [adf07e7]
19
+ - Updated dependencies [3f781ee]
20
+ - Updated dependencies [032d316]
21
+ - Updated dependencies [c2a8e54]
22
+ - Updated dependencies [7f90b0c]
23
+ - @shipfox/workflow-document@3.0.0
24
+ - @shipfox/inter-module@0.2.3
25
+
26
+ ## 10.0.0
27
+
28
+ ### Patch Changes
29
+
30
+ - 43ce975: Align Pi harness compatibility and provider catalog metadata with the current Pi SDK.
31
+ - @shipfox/inter-module@0.2.2
32
+ - @shipfox/workflow-document@2.1.3
33
+
3
34
  ## 9.0.2
4
35
 
5
36
  ### Patch Changes
@@ -15,6 +15,7 @@ declare const agentValidationCatalogSchema: z.ZodObject<{
15
15
  claude: "claude";
16
16
  }>;
17
17
  supported_provider_ids: z.ZodArray<z.ZodString>;
18
+ model_ids_by_provider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
18
19
  thinking_levels: z.ZodArray<z.ZodEnum<{
19
20
  off: "off";
20
21
  minimal: "minimal";
@@ -48,6 +49,7 @@ export declare const agentInterModuleContract: import("@shipfox/inter-module").I
48
49
  claude: "claude";
49
50
  }>;
50
51
  supported_provider_ids: z.ZodArray<z.ZodString>;
52
+ model_ids_by_provider: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
51
53
  thinking_levels: z.ZodArray<z.ZodEnum<{
52
54
  off: "off";
53
55
  minimal: "minimal";
@@ -72,15 +74,7 @@ export declare const agentInterModuleContract: import("@shipfox/inter-module").I
72
74
  }>>;
73
75
  provider: z.ZodOptional<z.ZodString>;
74
76
  model: z.ZodOptional<z.ZodString>;
75
- thinking: z.ZodOptional<z.ZodEnum<{
76
- off: "off";
77
- minimal: "minimal";
78
- low: "low";
79
- medium: "medium";
80
- high: "high";
81
- xhigh: "xhigh";
82
- max: "max";
83
- }>>;
77
+ thinking: z.ZodOptional<z.ZodString>;
84
78
  }, z.core.$strip>;
85
79
  }, z.core.$strip>;
86
80
  readonly output: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../src/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAQtB,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBhC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAgBlF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"inter-module.d.ts","sourceRoot":"","sources":["../src/inter-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAQtB,QAAA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBhC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAkBlF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BnC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -13,6 +13,7 @@ const agentValidationCatalogSchema = z.object({
13
13
  harnesses: z.array(z.object({
14
14
  id: harnessSchema,
15
15
  supported_provider_ids: z.array(z.string().min(1)),
16
+ model_ids_by_provider: z.record(z.string().min(1), z.array(z.string().min(1))).optional(),
16
17
  thinking_levels: z.array(agentThinkingSchema),
17
18
  effective_tools: z.array(z.string().min(1))
18
19
  }))
@@ -21,7 +22,9 @@ const agentConfigInputSchema = z.object({
21
22
  harness: harnessSchema.optional(),
22
23
  provider: modelProviderRefSchema.optional(),
23
24
  model: z.string().optional(),
24
- thinking: agentThinkingSchema.optional()
25
+ // A resolved template may contain any string; the agent module validates it
26
+ // against the resolved harness and returns the domain error if it is invalid.
27
+ thinking: z.string().optional()
25
28
  });
26
29
  const resolvedAgentConfigSchema = z.object({
27
30
  harness: harnessSchema,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inter-module.ts"],"sourcesContent":["import {defineInterModuleContract, type InterModuleClient} from '@shipfox/inter-module';\nimport {z} from 'zod';\nimport {\n agentRuntimeCredentialsResponseSchema,\n agentThinkingSchema,\n harnessSchema,\n modelProviderRefSchema,\n} from '#schemas/index.js';\n\nconst agentValidationCatalogSchema = z.object({\n version: z.literal(1),\n providers: z.array(\n z.object({\n id: z.string().min(1),\n support_status: z.enum(['supported', 'unsupported']),\n }),\n ),\n harnesses: z.array(\n z.object({\n id: harnessSchema,\n supported_provider_ids: z.array(z.string().min(1)),\n thinking_levels: z.array(agentThinkingSchema),\n effective_tools: z.array(z.string().min(1)),\n }),\n ),\n});\n\nexport type AgentValidationCatalog = z.infer<typeof agentValidationCatalogSchema>;\n\nconst agentConfigInputSchema = z.object({\n harness: harnessSchema.optional(),\n provider: modelProviderRefSchema.optional(),\n model: z.string().optional(),\n thinking: agentThinkingSchema.optional(),\n});\n\nconst resolvedAgentConfigSchema = z.object({\n harness: harnessSchema,\n provider: modelProviderRefSchema,\n model: z.string(),\n thinking: agentThinkingSchema,\n});\n\nexport const agentInterModuleContract = defineInterModuleContract({\n module: 'agent',\n methods: {\n getValidationCatalog: {\n input: z.object({}),\n output: agentValidationCatalogSchema,\n errors: {},\n },\n resolveAgentConfig: {\n input: z.object({workspaceId: z.string().uuid().nullable(), config: agentConfigInputSchema}),\n output: resolvedAgentConfigSchema,\n errors: {'agent-config-invalid': z.object({})},\n },\n resolveRuntimeCredentials: {\n input: z.object({\n workspaceId: z.string().uuid(),\n harness: harnessSchema,\n provider: modelProviderRefSchema,\n model: z.string(),\n thinking: agentThinkingSchema,\n }),\n output: agentRuntimeCredentialsResponseSchema,\n errors: {\n 'model-provider-not-configured': z.object({}),\n 'model-provider-credentials-invalid': z.object({}),\n },\n },\n },\n});\n\nexport type AgentInterModuleClient = InterModuleClient<typeof agentInterModuleContract>;\n"],"names":["defineInterModuleContract","z","agentRuntimeCredentialsResponseSchema","agentThinkingSchema","harnessSchema","modelProviderRefSchema","agentValidationCatalogSchema","object","version","literal","providers","array","id","string","min","support_status","enum","harnesses","supported_provider_ids","thinking_levels","effective_tools","agentConfigInputSchema","harness","optional","provider","model","thinking","resolvedAgentConfigSchema","agentInterModuleContract","module","methods","getValidationCatalog","input","output","errors","resolveAgentConfig","workspaceId","uuid","nullable","config","resolveRuntimeCredentials"],"mappings":"AAAA,SAAQA,yBAAyB,QAA+B,wBAAwB;AACxF,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,qCAAqC,EACrCC,mBAAmB,EACnBC,aAAa,EACbC,sBAAsB,QACjB,oBAAoB;AAE3B,MAAMC,+BAA+BL,EAAEM,MAAM,CAAC;IAC5CC,SAASP,EAAEQ,OAAO,CAAC;IACnBC,WAAWT,EAAEU,KAAK,CAChBV,EAAEM,MAAM,CAAC;QACPK,IAAIX,EAAEY,MAAM,GAAGC,GAAG,CAAC;QACnBC,gBAAgBd,EAAEe,IAAI,CAAC;YAAC;YAAa;SAAc;IACrD;IAEFC,WAAWhB,EAAEU,KAAK,CAChBV,EAAEM,MAAM,CAAC;QACPK,IAAIR;QACJc,wBAAwBjB,EAAEU,KAAK,CAACV,EAAEY,MAAM,GAAGC,GAAG,CAAC;QAC/CK,iBAAiBlB,EAAEU,KAAK,CAACR;QACzBiB,iBAAiBnB,EAAEU,KAAK,CAACV,EAAEY,MAAM,GAAGC,GAAG,CAAC;IAC1C;AAEJ;AAIA,MAAMO,yBAAyBpB,EAAEM,MAAM,CAAC;IACtCe,SAASlB,cAAcmB,QAAQ;IAC/BC,UAAUnB,uBAAuBkB,QAAQ;IACzCE,OAAOxB,EAAEY,MAAM,GAAGU,QAAQ;IAC1BG,UAAUvB,oBAAoBoB,QAAQ;AACxC;AAEA,MAAMI,4BAA4B1B,EAAEM,MAAM,CAAC;IACzCe,SAASlB;IACToB,UAAUnB;IACVoB,OAAOxB,EAAEY,MAAM;IACfa,UAAUvB;AACZ;AAEA,OAAO,MAAMyB,2BAA2B5B,0BAA0B;IAChE6B,QAAQ;IACRC,SAAS;QACPC,sBAAsB;YACpBC,OAAO/B,EAAEM,MAAM,CAAC,CAAC;YACjB0B,QAAQ3B;YACR4B,QAAQ,CAAC;QACX;QACAC,oBAAoB;YAClBH,OAAO/B,EAAEM,MAAM,CAAC;gBAAC6B,aAAanC,EAAEY,MAAM,GAAGwB,IAAI,GAAGC,QAAQ;gBAAIC,QAAQlB;YAAsB;YAC1FY,QAAQN;YACRO,QAAQ;gBAAC,wBAAwBjC,EAAEM,MAAM,CAAC,CAAC;YAAE;QAC/C;QACAiC,2BAA2B;YACzBR,OAAO/B,EAAEM,MAAM,CAAC;gBACd6B,aAAanC,EAAEY,MAAM,GAAGwB,IAAI;gBAC5Bf,SAASlB;gBACToB,UAAUnB;gBACVoB,OAAOxB,EAAEY,MAAM;gBACfa,UAAUvB;YACZ;YACA8B,QAAQ/B;YACRgC,QAAQ;gBACN,iCAAiCjC,EAAEM,MAAM,CAAC,CAAC;gBAC3C,sCAAsCN,EAAEM,MAAM,CAAC,CAAC;YAClD;QACF;IACF;AACF,GAAG"}
1
+ {"version":3,"sources":["../src/inter-module.ts"],"sourcesContent":["import {defineInterModuleContract, type InterModuleClient} from '@shipfox/inter-module';\nimport {z} from 'zod';\nimport {\n agentRuntimeCredentialsResponseSchema,\n agentThinkingSchema,\n harnessSchema,\n modelProviderRefSchema,\n} from '#schemas/index.js';\n\nconst agentValidationCatalogSchema = z.object({\n version: z.literal(1),\n providers: z.array(\n z.object({\n id: z.string().min(1),\n support_status: z.enum(['supported', 'unsupported']),\n }),\n ),\n harnesses: z.array(\n z.object({\n id: harnessSchema,\n supported_provider_ids: z.array(z.string().min(1)),\n model_ids_by_provider: z.record(z.string().min(1), z.array(z.string().min(1))).optional(),\n thinking_levels: z.array(agentThinkingSchema),\n effective_tools: z.array(z.string().min(1)),\n }),\n ),\n});\n\nexport type AgentValidationCatalog = z.infer<typeof agentValidationCatalogSchema>;\n\nconst agentConfigInputSchema = z.object({\n harness: harnessSchema.optional(),\n provider: modelProviderRefSchema.optional(),\n model: z.string().optional(),\n // A resolved template may contain any string; the agent module validates it\n // against the resolved harness and returns the domain error if it is invalid.\n thinking: z.string().optional(),\n});\n\nconst resolvedAgentConfigSchema = z.object({\n harness: harnessSchema,\n provider: modelProviderRefSchema,\n model: z.string(),\n thinking: agentThinkingSchema,\n});\n\nexport const agentInterModuleContract = defineInterModuleContract({\n module: 'agent',\n methods: {\n getValidationCatalog: {\n input: z.object({}),\n output: agentValidationCatalogSchema,\n errors: {},\n },\n resolveAgentConfig: {\n input: z.object({workspaceId: z.string().uuid().nullable(), config: agentConfigInputSchema}),\n output: resolvedAgentConfigSchema,\n errors: {'agent-config-invalid': z.object({})},\n },\n resolveRuntimeCredentials: {\n input: z.object({\n workspaceId: z.string().uuid(),\n harness: harnessSchema,\n provider: modelProviderRefSchema,\n model: z.string(),\n thinking: agentThinkingSchema,\n }),\n output: agentRuntimeCredentialsResponseSchema,\n errors: {\n 'model-provider-not-configured': z.object({}),\n 'model-provider-credentials-invalid': z.object({}),\n },\n },\n },\n});\n\nexport type AgentInterModuleClient = InterModuleClient<typeof agentInterModuleContract>;\n"],"names":["defineInterModuleContract","z","agentRuntimeCredentialsResponseSchema","agentThinkingSchema","harnessSchema","modelProviderRefSchema","agentValidationCatalogSchema","object","version","literal","providers","array","id","string","min","support_status","enum","harnesses","supported_provider_ids","model_ids_by_provider","record","optional","thinking_levels","effective_tools","agentConfigInputSchema","harness","provider","model","thinking","resolvedAgentConfigSchema","agentInterModuleContract","module","methods","getValidationCatalog","input","output","errors","resolveAgentConfig","workspaceId","uuid","nullable","config","resolveRuntimeCredentials"],"mappings":"AAAA,SAAQA,yBAAyB,QAA+B,wBAAwB;AACxF,SAAQC,CAAC,QAAO,MAAM;AACtB,SACEC,qCAAqC,EACrCC,mBAAmB,EACnBC,aAAa,EACbC,sBAAsB,QACjB,oBAAoB;AAE3B,MAAMC,+BAA+BL,EAAEM,MAAM,CAAC;IAC5CC,SAASP,EAAEQ,OAAO,CAAC;IACnBC,WAAWT,EAAEU,KAAK,CAChBV,EAAEM,MAAM,CAAC;QACPK,IAAIX,EAAEY,MAAM,GAAGC,GAAG,CAAC;QACnBC,gBAAgBd,EAAEe,IAAI,CAAC;YAAC;YAAa;SAAc;IACrD;IAEFC,WAAWhB,EAAEU,KAAK,CAChBV,EAAEM,MAAM,CAAC;QACPK,IAAIR;QACJc,wBAAwBjB,EAAEU,KAAK,CAACV,EAAEY,MAAM,GAAGC,GAAG,CAAC;QAC/CK,uBAAuBlB,EAAEmB,MAAM,CAACnB,EAAEY,MAAM,GAAGC,GAAG,CAAC,IAAIb,EAAEU,KAAK,CAACV,EAAEY,MAAM,GAAGC,GAAG,CAAC,KAAKO,QAAQ;QACvFC,iBAAiBrB,EAAEU,KAAK,CAACR;QACzBoB,iBAAiBtB,EAAEU,KAAK,CAACV,EAAEY,MAAM,GAAGC,GAAG,CAAC;IAC1C;AAEJ;AAIA,MAAMU,yBAAyBvB,EAAEM,MAAM,CAAC;IACtCkB,SAASrB,cAAciB,QAAQ;IAC/BK,UAAUrB,uBAAuBgB,QAAQ;IACzCM,OAAO1B,EAAEY,MAAM,GAAGQ,QAAQ;IAC1B,4EAA4E;IAC5E,8EAA8E;IAC9EO,UAAU3B,EAAEY,MAAM,GAAGQ,QAAQ;AAC/B;AAEA,MAAMQ,4BAA4B5B,EAAEM,MAAM,CAAC;IACzCkB,SAASrB;IACTsB,UAAUrB;IACVsB,OAAO1B,EAAEY,MAAM;IACfe,UAAUzB;AACZ;AAEA,OAAO,MAAM2B,2BAA2B9B,0BAA0B;IAChE+B,QAAQ;IACRC,SAAS;QACPC,sBAAsB;YACpBC,OAAOjC,EAAEM,MAAM,CAAC,CAAC;YACjB4B,QAAQ7B;YACR8B,QAAQ,CAAC;QACX;QACAC,oBAAoB;YAClBH,OAAOjC,EAAEM,MAAM,CAAC;gBAAC+B,aAAarC,EAAEY,MAAM,GAAG0B,IAAI,GAAGC,QAAQ;gBAAIC,QAAQjB;YAAsB;YAC1FW,QAAQN;YACRO,QAAQ;gBAAC,wBAAwBnC,EAAEM,MAAM,CAAC,CAAC;YAAE;QAC/C;QACAmC,2BAA2B;YACzBR,OAAOjC,EAAEM,MAAM,CAAC;gBACd+B,aAAarC,EAAEY,MAAM,GAAG0B,IAAI;gBAC5Bd,SAASrB;gBACTsB,UAAUrB;gBACVsB,OAAO1B,EAAEY,MAAM;gBACfe,UAAUzB;YACZ;YACAgC,QAAQjC;YACRkC,QAAQ;gBACN,iCAAiCnC,EAAEM,MAAM,CAAC,CAAC;gBAC3C,sCAAsCN,EAAEM,MAAM,CAAC,CAAC;YAClD;QACF;IACF;AACF,GAAG"}
@@ -43,6 +43,8 @@ export declare const modelProviderCatalogSeedSchema: z.ZodObject<{
43
43
  fireworks: "fireworks";
44
44
  together: "together";
45
45
  "kimi-coding": "kimi-coding";
46
+ "qwen-token-plan": "qwen-token-plan";
47
+ "qwen-token-plan-cn": "qwen-token-plan-cn";
46
48
  minimax: "minimax";
47
49
  "minimax-cn": "minimax-cn";
48
50
  moonshotai: "moonshotai";
@@ -95,6 +97,8 @@ export declare const modelProviderCatalogEntrySchema: z.ZodObject<{
95
97
  fireworks: "fireworks";
96
98
  together: "together";
97
99
  "kimi-coding": "kimi-coding";
100
+ "qwen-token-plan": "qwen-token-plan";
101
+ "qwen-token-plan-cn": "qwen-token-plan-cn";
98
102
  minimax: "minimax";
99
103
  "minimax-cn": "minimax-cn";
100
104
  moonshotai: "moonshotai";
@@ -152,6 +156,8 @@ export declare const modelProviderCatalogResponseSchema: z.ZodObject<{
152
156
  fireworks: "fireworks";
153
157
  together: "together";
154
158
  "kimi-coding": "kimi-coding";
159
+ "qwen-token-plan": "qwen-token-plan";
160
+ "qwen-token-plan-cn": "qwen-token-plan-cn";
155
161
  minimax: "minimax";
156
162
  "minimax-cn": "minimax-cn";
157
163
  moonshotai: "moonshotai";
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/schemas/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAStB,YAAY,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,GACzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,kCAAkC;;;;iBAI7C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAEjG,eAAO,MAAM,gCAAgC;;;EAAuC,CAAC;AAErF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAc1F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAC+B,CAAC;AAE3E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEzF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCxC,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE3F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAoBjG,eAAO,MAAM,2BAA2B,EAAE,2BAA2B,EA8DpE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAEzF;AAED,wBAAgB,2BAA2B,IAAI,2BAA2B,EAAE,CAE3E"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/schemas/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAStB,YAAY,EAAC,aAAa,EAAE,OAAO,EAAC,MAAM,4BAA4B,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,wBAAwB,GACzB,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEzE,eAAO,MAAM,kCAAkC;;;;iBAI7C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAEjG,eAAO,MAAM,gCAAgC;;;EAAuC,CAAC;AAErF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAc1F,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAC+B,CAAC;AAE3E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEzF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCxC,CAAC;AAEL,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE3F,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7C,CAAC;AAEH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAoBjG,eAAO,MAAM,2BAA2B,EAAE,2BAA2B,EAgEpE,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS,CAEzF;AAED,wBAAgB,2BAA2B,IAAI,2BAA2B,EAAE,CAE3E"}
@@ -101,7 +101,9 @@ export const MODEL_PROVIDER_CATALOG_SEED = [
101
101
  supportedProvider('huggingface', 'Hugging Face', 'deepseek-ai/DeepSeek-V4-Pro'),
102
102
  supportedProvider('fireworks', 'Fireworks', 'accounts/fireworks/models/deepseek-v4-pro'),
103
103
  supportedProvider('together', 'Together AI', 'deepseek-ai/DeepSeek-V4-Pro'),
104
- supportedProvider('kimi-coding', 'Kimi Coding', 'k2p7'),
104
+ supportedProvider('kimi-coding', 'Kimi Coding', 'kimi-for-coding'),
105
+ supportedProvider('qwen-token-plan', 'Qwen Token Plan', 'qwen3.8-max-preview'),
106
+ supportedProvider('qwen-token-plan-cn', 'Qwen Token Plan CN', 'qwen3.8-max-preview'),
105
107
  supportedProvider('minimax', 'MiniMax', 'MiniMax-M3'),
106
108
  supportedProvider('minimax-cn', 'MiniMax CN', 'MiniMax-M3'),
107
109
  supportedProvider('moonshotai', 'Moonshot AI', 'kimi-k2.7-code'),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schemas/catalog.ts"],"sourcesContent":["import {\n agentThinkingByHarness,\n agentThinkingSchema,\n claudeAgentThinkingSchema,\n DEFAULT_AGENT_THINKING,\n DEFAULT_HARNESS,\n DEFAULT_MODEL_PROVIDER,\n harnessSchema,\n piAgentThinkingSchema,\n thinkingLevelsForHarness,\n} from '@shipfox/workflow-document';\nimport {z} from 'zod';\nimport {\n type ModelProviderId,\n providerIdSchema,\n SUPPORTED_MODEL_PROVIDER_IDS,\n type SupportedModelProviderId,\n UNSUPPORTED_MODEL_PROVIDER_IDS,\n} from './model-provider-id.js';\n\nexport type {AgentThinking, Harness} from '@shipfox/workflow-document';\nexport {\n agentThinkingByHarness,\n agentThinkingSchema,\n claudeAgentThinkingSchema,\n DEFAULT_AGENT_THINKING,\n DEFAULT_HARNESS,\n DEFAULT_MODEL_PROVIDER,\n harnessSchema,\n piAgentThinkingSchema,\n thinkingLevelsForHarness,\n};\n\nexport const agentModelOptionSchema = z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n});\n\nexport type AgentModelOptionDto = z.infer<typeof agentModelOptionSchema>;\n\nexport const modelProviderCredentialFieldSchema = z.object({\n key: z.string().min(1),\n label: z.string().min(1),\n secret: z.boolean(),\n});\n\nexport type ModelProviderCredentialFieldDto = z.infer<typeof modelProviderCredentialFieldSchema>;\n\nexport const modelProviderSupportStatusSchema = z.enum(['supported', 'unsupported']);\n\nexport type ModelProviderSupportStatus = z.infer<typeof modelProviderSupportStatusSchema>;\n\nconst supportedModelProviderIds = new Set<string>(SUPPORTED_MODEL_PROVIDER_IDS);\nconst unsupportedModelProviderIds = new Set<string>(UNSUPPORTED_MODEL_PROVIDER_IDS);\n\nconst modelProviderCatalogSeedBaseSchema = z.object({\n id: providerIdSchema,\n label: z.string().min(1),\n support_status: modelProviderSupportStatusSchema,\n default_model: z.string().min(1).nullable(),\n credential_fields: z.array(modelProviderCredentialFieldSchema),\n unsupported_reason: z.string().min(1).nullable(),\n});\n\nexport const modelProviderCatalogSeedSchema =\n modelProviderCatalogSeedBaseSchema.superRefine(validateCatalogSeedEntry);\n\nexport type ModelProviderCatalogSeedDto = z.infer<typeof modelProviderCatalogSeedSchema>;\n\nexport const modelProviderCatalogEntrySchema = modelProviderCatalogSeedBaseSchema\n .extend({\n models: z.array(agentModelOptionSchema),\n })\n .superRefine((entry, ctx) => {\n validateCatalogSeedEntry(entry, ctx);\n\n if (entry.support_status === 'supported') {\n if (entry.models.length === 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['models'],\n message: 'Supported model providers must include at least one model.',\n });\n }\n if (\n entry.default_model !== null &&\n !entry.models.some((model) => model.id === entry.default_model)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Supported model provider default_model must be present in models.',\n });\n }\n } else if (entry.models.length > 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['models'],\n message: 'Unsupported model providers must not include models.',\n });\n }\n });\n\nexport type ModelProviderCatalogEntryDto = z.infer<typeof modelProviderCatalogEntrySchema>;\n\nexport const modelProviderCatalogResponseSchema = z.object({\n providers: z.array(modelProviderCatalogEntrySchema),\n});\n\nexport type ModelProviderCatalogResponseDto = z.infer<typeof modelProviderCatalogResponseSchema>;\n\nconst apiKeyCredentialFields = [credentialField('api_key', 'API key', true)];\n\nconst azureCredentialFields = [\n credentialField('endpoint', 'Endpoint', false),\n credentialField('api_key', 'API key', true),\n];\n\nconst cloudflareAiGatewayCredentialFields = [\n credentialField('api_key', 'API token', true),\n credentialField('account_id', 'Account ID', false),\n credentialField('gateway_id', 'Gateway ID', false),\n];\n\nconst cloudflareWorkersAiCredentialFields = [\n credentialField('api_key', 'API token', true),\n credentialField('account_id', 'Account ID', false),\n];\n\nexport const MODEL_PROVIDER_CATALOG_SEED: ModelProviderCatalogSeedDto[] = [\n supportedProvider('anthropic', 'Anthropic', 'claude-opus-4-8'),\n supportedProvider('ant-ling', 'Ant Ling', 'Ring-2.6-1T'),\n supportedProvider('azure-openai-responses', 'Azure OpenAI', 'gpt-5.5-pro', azureCredentialFields),\n supportedProvider('openai', 'OpenAI', 'gpt-5.5-pro'),\n supportedProvider('deepseek', 'DeepSeek', 'deepseek-v4-pro'),\n supportedProvider('nvidia', 'NVIDIA', 'nvidia/nemotron-3-ultra-550b-a55b'),\n supportedProvider('google', 'Google AI Studio', 'gemini-3.1-pro-preview'),\n supportedProvider('mistral', 'Mistral', 'mistral-large-latest'),\n supportedProvider('groq', 'Groq', 'openai/gpt-oss-120b'),\n supportedProvider('cerebras', 'Cerebras', 'gpt-oss-120b'),\n supportedProvider(\n 'cloudflare-ai-gateway',\n 'Cloudflare AI Gateway',\n 'claude-opus-4-8',\n cloudflareAiGatewayCredentialFields,\n ),\n supportedProvider(\n 'cloudflare-workers-ai',\n 'Cloudflare Workers AI',\n '@cf/moonshotai/kimi-k2.7-code',\n cloudflareWorkersAiCredentialFields,\n ),\n supportedProvider('xai', 'xAI', 'grok-4.3'),\n supportedProvider('openrouter', 'OpenRouter', 'anthropic/claude-opus-4.8'),\n supportedProvider('vercel-ai-gateway', 'Vercel AI Gateway', 'anthropic/claude-opus-4.8'),\n supportedProvider('zai', 'Z.ai', 'glm-5.2'),\n supportedProvider('zai-coding-cn', 'Z.ai Coding CN', 'glm-5.2'),\n supportedProvider('opencode', 'OpenCode', 'claude-opus-4-8'),\n supportedProvider('opencode-go', 'OpenCode Go', 'kimi-k2.7-code'),\n supportedProvider('huggingface', 'Hugging Face', 'deepseek-ai/DeepSeek-V4-Pro'),\n supportedProvider('fireworks', 'Fireworks', 'accounts/fireworks/models/deepseek-v4-pro'),\n supportedProvider('together', 'Together AI', 'deepseek-ai/DeepSeek-V4-Pro'),\n supportedProvider('kimi-coding', 'Kimi Coding', 'k2p7'),\n supportedProvider('minimax', 'MiniMax', 'MiniMax-M3'),\n supportedProvider('minimax-cn', 'MiniMax CN', 'MiniMax-M3'),\n supportedProvider('moonshotai', 'Moonshot AI', 'kimi-k2.7-code'),\n supportedProvider('moonshotai-cn', 'Moonshot AI CN', 'kimi-k2.7-code'),\n supportedProvider('xiaomi', 'Xiaomi', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-cn', 'Xiaomi Token Plan CN', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-ams', 'Xiaomi Token Plan AMS', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-sgp', 'Xiaomi Token Plan SGP', 'mimo-v2.5-pro'),\n unsupportedProvider(\n 'amazon-bedrock',\n 'Amazon Bedrock',\n 'AWS cloud credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'google-vertex',\n 'Google Vertex AI',\n 'GCP cloud credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'openai-codex',\n 'OpenAI Codex',\n 'ChatGPT subscription and OAuth credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'github-copilot',\n 'GitHub Copilot',\n 'GitHub Copilot OAuth credentials are not supported by workspace API-key provider configs yet.',\n ),\n];\n\nexport function getModelProviderEntry(id: string): ModelProviderCatalogSeedDto | undefined {\n return MODEL_PROVIDER_CATALOG_SEED.find((entry) => entry.id === id);\n}\n\nexport function listSupportedModelProviders(): ModelProviderCatalogSeedDto[] {\n return MODEL_PROVIDER_CATALOG_SEED.filter((entry) => entry.support_status === 'supported');\n}\n\nfunction validateCatalogSeedEntry(\n entry: z.infer<typeof modelProviderCatalogSeedBaseSchema>,\n ctx: z.RefinementCtx,\n): void {\n if (entry.support_status === 'supported') {\n if (!supportedModelProviderIds.has(entry.id)) {\n ctx.addIssue({\n code: 'custom',\n path: ['id'],\n message: 'Supported catalog entries must use a supported model provider id.',\n });\n }\n if (entry.default_model === null) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Supported model providers must define a default_model.',\n });\n }\n if (entry.credential_fields.length === 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['credential_fields'],\n message: 'Supported model providers must define credential_fields.',\n });\n }\n if (entry.unsupported_reason !== null) {\n ctx.addIssue({\n code: 'custom',\n path: ['unsupported_reason'],\n message: 'Supported model providers must not define unsupported_reason.',\n });\n }\n } else {\n if (!unsupportedModelProviderIds.has(entry.id)) {\n ctx.addIssue({\n code: 'custom',\n path: ['id'],\n message: 'Unsupported catalog entries must use an unsupported model provider id.',\n });\n }\n if (entry.default_model !== null) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Unsupported model providers must not define a default_model.',\n });\n }\n if (entry.credential_fields.length > 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['credential_fields'],\n message: 'Unsupported model providers must not define credential_fields.',\n });\n }\n if (entry.unsupported_reason === null) {\n ctx.addIssue({\n code: 'custom',\n path: ['unsupported_reason'],\n message: 'Unsupported model providers must define unsupported_reason.',\n });\n }\n }\n}\n\nfunction credentialField(\n key: string,\n label: string,\n secret: boolean,\n): ModelProviderCredentialFieldDto {\n return {key, label, secret};\n}\n\nfunction supportedProvider(\n id: SupportedModelProviderId,\n label: string,\n defaultModel: string,\n credentialFields: ModelProviderCredentialFieldDto[] = apiKeyCredentialFields,\n): ModelProviderCatalogSeedDto {\n return {\n id,\n label,\n support_status: 'supported',\n default_model: defaultModel,\n credential_fields: credentialFields.map((field) => ({...field})),\n unsupported_reason: null,\n };\n}\n\nfunction unsupportedProvider(\n id: ModelProviderId,\n label: string,\n unsupportedReason: string,\n): ModelProviderCatalogSeedDto {\n return {\n id,\n label,\n support_status: 'unsupported',\n default_model: null,\n credential_fields: [],\n unsupported_reason: unsupportedReason,\n };\n}\n"],"names":["agentThinkingByHarness","agentThinkingSchema","claudeAgentThinkingSchema","DEFAULT_AGENT_THINKING","DEFAULT_HARNESS","DEFAULT_MODEL_PROVIDER","harnessSchema","piAgentThinkingSchema","thinkingLevelsForHarness","z","providerIdSchema","SUPPORTED_MODEL_PROVIDER_IDS","UNSUPPORTED_MODEL_PROVIDER_IDS","agentModelOptionSchema","object","id","string","min","label","modelProviderCredentialFieldSchema","key","secret","boolean","modelProviderSupportStatusSchema","enum","supportedModelProviderIds","Set","unsupportedModelProviderIds","modelProviderCatalogSeedBaseSchema","support_status","default_model","nullable","credential_fields","array","unsupported_reason","modelProviderCatalogSeedSchema","superRefine","validateCatalogSeedEntry","modelProviderCatalogEntrySchema","extend","models","entry","ctx","length","addIssue","code","path","message","some","model","modelProviderCatalogResponseSchema","providers","apiKeyCredentialFields","credentialField","azureCredentialFields","cloudflareAiGatewayCredentialFields","cloudflareWorkersAiCredentialFields","MODEL_PROVIDER_CATALOG_SEED","supportedProvider","unsupportedProvider","getModelProviderEntry","find","listSupportedModelProviders","filter","has","defaultModel","credentialFields","map","field","unsupportedReason"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schemas/catalog.ts"],"sourcesContent":["import {\n agentThinkingByHarness,\n agentThinkingSchema,\n claudeAgentThinkingSchema,\n DEFAULT_AGENT_THINKING,\n DEFAULT_HARNESS,\n DEFAULT_MODEL_PROVIDER,\n harnessSchema,\n piAgentThinkingSchema,\n thinkingLevelsForHarness,\n} from '@shipfox/workflow-document';\nimport {z} from 'zod';\nimport {\n type ModelProviderId,\n providerIdSchema,\n SUPPORTED_MODEL_PROVIDER_IDS,\n type SupportedModelProviderId,\n UNSUPPORTED_MODEL_PROVIDER_IDS,\n} from './model-provider-id.js';\n\nexport type {AgentThinking, Harness} from '@shipfox/workflow-document';\nexport {\n agentThinkingByHarness,\n agentThinkingSchema,\n claudeAgentThinkingSchema,\n DEFAULT_AGENT_THINKING,\n DEFAULT_HARNESS,\n DEFAULT_MODEL_PROVIDER,\n harnessSchema,\n piAgentThinkingSchema,\n thinkingLevelsForHarness,\n};\n\nexport const agentModelOptionSchema = z.object({\n id: z.string().min(1),\n label: z.string().min(1),\n});\n\nexport type AgentModelOptionDto = z.infer<typeof agentModelOptionSchema>;\n\nexport const modelProviderCredentialFieldSchema = z.object({\n key: z.string().min(1),\n label: z.string().min(1),\n secret: z.boolean(),\n});\n\nexport type ModelProviderCredentialFieldDto = z.infer<typeof modelProviderCredentialFieldSchema>;\n\nexport const modelProviderSupportStatusSchema = z.enum(['supported', 'unsupported']);\n\nexport type ModelProviderSupportStatus = z.infer<typeof modelProviderSupportStatusSchema>;\n\nconst supportedModelProviderIds = new Set<string>(SUPPORTED_MODEL_PROVIDER_IDS);\nconst unsupportedModelProviderIds = new Set<string>(UNSUPPORTED_MODEL_PROVIDER_IDS);\n\nconst modelProviderCatalogSeedBaseSchema = z.object({\n id: providerIdSchema,\n label: z.string().min(1),\n support_status: modelProviderSupportStatusSchema,\n default_model: z.string().min(1).nullable(),\n credential_fields: z.array(modelProviderCredentialFieldSchema),\n unsupported_reason: z.string().min(1).nullable(),\n});\n\nexport const modelProviderCatalogSeedSchema =\n modelProviderCatalogSeedBaseSchema.superRefine(validateCatalogSeedEntry);\n\nexport type ModelProviderCatalogSeedDto = z.infer<typeof modelProviderCatalogSeedSchema>;\n\nexport const modelProviderCatalogEntrySchema = modelProviderCatalogSeedBaseSchema\n .extend({\n models: z.array(agentModelOptionSchema),\n })\n .superRefine((entry, ctx) => {\n validateCatalogSeedEntry(entry, ctx);\n\n if (entry.support_status === 'supported') {\n if (entry.models.length === 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['models'],\n message: 'Supported model providers must include at least one model.',\n });\n }\n if (\n entry.default_model !== null &&\n !entry.models.some((model) => model.id === entry.default_model)\n ) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Supported model provider default_model must be present in models.',\n });\n }\n } else if (entry.models.length > 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['models'],\n message: 'Unsupported model providers must not include models.',\n });\n }\n });\n\nexport type ModelProviderCatalogEntryDto = z.infer<typeof modelProviderCatalogEntrySchema>;\n\nexport const modelProviderCatalogResponseSchema = z.object({\n providers: z.array(modelProviderCatalogEntrySchema),\n});\n\nexport type ModelProviderCatalogResponseDto = z.infer<typeof modelProviderCatalogResponseSchema>;\n\nconst apiKeyCredentialFields = [credentialField('api_key', 'API key', true)];\n\nconst azureCredentialFields = [\n credentialField('endpoint', 'Endpoint', false),\n credentialField('api_key', 'API key', true),\n];\n\nconst cloudflareAiGatewayCredentialFields = [\n credentialField('api_key', 'API token', true),\n credentialField('account_id', 'Account ID', false),\n credentialField('gateway_id', 'Gateway ID', false),\n];\n\nconst cloudflareWorkersAiCredentialFields = [\n credentialField('api_key', 'API token', true),\n credentialField('account_id', 'Account ID', false),\n];\n\nexport const MODEL_PROVIDER_CATALOG_SEED: ModelProviderCatalogSeedDto[] = [\n supportedProvider('anthropic', 'Anthropic', 'claude-opus-4-8'),\n supportedProvider('ant-ling', 'Ant Ling', 'Ring-2.6-1T'),\n supportedProvider('azure-openai-responses', 'Azure OpenAI', 'gpt-5.5-pro', azureCredentialFields),\n supportedProvider('openai', 'OpenAI', 'gpt-5.5-pro'),\n supportedProvider('deepseek', 'DeepSeek', 'deepseek-v4-pro'),\n supportedProvider('nvidia', 'NVIDIA', 'nvidia/nemotron-3-ultra-550b-a55b'),\n supportedProvider('google', 'Google AI Studio', 'gemini-3.1-pro-preview'),\n supportedProvider('mistral', 'Mistral', 'mistral-large-latest'),\n supportedProvider('groq', 'Groq', 'openai/gpt-oss-120b'),\n supportedProvider('cerebras', 'Cerebras', 'gpt-oss-120b'),\n supportedProvider(\n 'cloudflare-ai-gateway',\n 'Cloudflare AI Gateway',\n 'claude-opus-4-8',\n cloudflareAiGatewayCredentialFields,\n ),\n supportedProvider(\n 'cloudflare-workers-ai',\n 'Cloudflare Workers AI',\n '@cf/moonshotai/kimi-k2.7-code',\n cloudflareWorkersAiCredentialFields,\n ),\n supportedProvider('xai', 'xAI', 'grok-4.3'),\n supportedProvider('openrouter', 'OpenRouter', 'anthropic/claude-opus-4.8'),\n supportedProvider('vercel-ai-gateway', 'Vercel AI Gateway', 'anthropic/claude-opus-4.8'),\n supportedProvider('zai', 'Z.ai', 'glm-5.2'),\n supportedProvider('zai-coding-cn', 'Z.ai Coding CN', 'glm-5.2'),\n supportedProvider('opencode', 'OpenCode', 'claude-opus-4-8'),\n supportedProvider('opencode-go', 'OpenCode Go', 'kimi-k2.7-code'),\n supportedProvider('huggingface', 'Hugging Face', 'deepseek-ai/DeepSeek-V4-Pro'),\n supportedProvider('fireworks', 'Fireworks', 'accounts/fireworks/models/deepseek-v4-pro'),\n supportedProvider('together', 'Together AI', 'deepseek-ai/DeepSeek-V4-Pro'),\n supportedProvider('kimi-coding', 'Kimi Coding', 'kimi-for-coding'),\n supportedProvider('qwen-token-plan', 'Qwen Token Plan', 'qwen3.8-max-preview'),\n supportedProvider('qwen-token-plan-cn', 'Qwen Token Plan CN', 'qwen3.8-max-preview'),\n supportedProvider('minimax', 'MiniMax', 'MiniMax-M3'),\n supportedProvider('minimax-cn', 'MiniMax CN', 'MiniMax-M3'),\n supportedProvider('moonshotai', 'Moonshot AI', 'kimi-k2.7-code'),\n supportedProvider('moonshotai-cn', 'Moonshot AI CN', 'kimi-k2.7-code'),\n supportedProvider('xiaomi', 'Xiaomi', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-cn', 'Xiaomi Token Plan CN', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-ams', 'Xiaomi Token Plan AMS', 'mimo-v2.5-pro'),\n supportedProvider('xiaomi-token-plan-sgp', 'Xiaomi Token Plan SGP', 'mimo-v2.5-pro'),\n unsupportedProvider(\n 'amazon-bedrock',\n 'Amazon Bedrock',\n 'AWS cloud credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'google-vertex',\n 'Google Vertex AI',\n 'GCP cloud credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'openai-codex',\n 'OpenAI Codex',\n 'ChatGPT subscription and OAuth credentials are not supported by workspace API-key provider configs yet.',\n ),\n unsupportedProvider(\n 'github-copilot',\n 'GitHub Copilot',\n 'GitHub Copilot OAuth credentials are not supported by workspace API-key provider configs yet.',\n ),\n];\n\nexport function getModelProviderEntry(id: string): ModelProviderCatalogSeedDto | undefined {\n return MODEL_PROVIDER_CATALOG_SEED.find((entry) => entry.id === id);\n}\n\nexport function listSupportedModelProviders(): ModelProviderCatalogSeedDto[] {\n return MODEL_PROVIDER_CATALOG_SEED.filter((entry) => entry.support_status === 'supported');\n}\n\nfunction validateCatalogSeedEntry(\n entry: z.infer<typeof modelProviderCatalogSeedBaseSchema>,\n ctx: z.RefinementCtx,\n): void {\n if (entry.support_status === 'supported') {\n if (!supportedModelProviderIds.has(entry.id)) {\n ctx.addIssue({\n code: 'custom',\n path: ['id'],\n message: 'Supported catalog entries must use a supported model provider id.',\n });\n }\n if (entry.default_model === null) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Supported model providers must define a default_model.',\n });\n }\n if (entry.credential_fields.length === 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['credential_fields'],\n message: 'Supported model providers must define credential_fields.',\n });\n }\n if (entry.unsupported_reason !== null) {\n ctx.addIssue({\n code: 'custom',\n path: ['unsupported_reason'],\n message: 'Supported model providers must not define unsupported_reason.',\n });\n }\n } else {\n if (!unsupportedModelProviderIds.has(entry.id)) {\n ctx.addIssue({\n code: 'custom',\n path: ['id'],\n message: 'Unsupported catalog entries must use an unsupported model provider id.',\n });\n }\n if (entry.default_model !== null) {\n ctx.addIssue({\n code: 'custom',\n path: ['default_model'],\n message: 'Unsupported model providers must not define a default_model.',\n });\n }\n if (entry.credential_fields.length > 0) {\n ctx.addIssue({\n code: 'custom',\n path: ['credential_fields'],\n message: 'Unsupported model providers must not define credential_fields.',\n });\n }\n if (entry.unsupported_reason === null) {\n ctx.addIssue({\n code: 'custom',\n path: ['unsupported_reason'],\n message: 'Unsupported model providers must define unsupported_reason.',\n });\n }\n }\n}\n\nfunction credentialField(\n key: string,\n label: string,\n secret: boolean,\n): ModelProviderCredentialFieldDto {\n return {key, label, secret};\n}\n\nfunction supportedProvider(\n id: SupportedModelProviderId,\n label: string,\n defaultModel: string,\n credentialFields: ModelProviderCredentialFieldDto[] = apiKeyCredentialFields,\n): ModelProviderCatalogSeedDto {\n return {\n id,\n label,\n support_status: 'supported',\n default_model: defaultModel,\n credential_fields: credentialFields.map((field) => ({...field})),\n unsupported_reason: null,\n };\n}\n\nfunction unsupportedProvider(\n id: ModelProviderId,\n label: string,\n unsupportedReason: string,\n): ModelProviderCatalogSeedDto {\n return {\n id,\n label,\n support_status: 'unsupported',\n default_model: null,\n credential_fields: [],\n unsupported_reason: unsupportedReason,\n };\n}\n"],"names":["agentThinkingByHarness","agentThinkingSchema","claudeAgentThinkingSchema","DEFAULT_AGENT_THINKING","DEFAULT_HARNESS","DEFAULT_MODEL_PROVIDER","harnessSchema","piAgentThinkingSchema","thinkingLevelsForHarness","z","providerIdSchema","SUPPORTED_MODEL_PROVIDER_IDS","UNSUPPORTED_MODEL_PROVIDER_IDS","agentModelOptionSchema","object","id","string","min","label","modelProviderCredentialFieldSchema","key","secret","boolean","modelProviderSupportStatusSchema","enum","supportedModelProviderIds","Set","unsupportedModelProviderIds","modelProviderCatalogSeedBaseSchema","support_status","default_model","nullable","credential_fields","array","unsupported_reason","modelProviderCatalogSeedSchema","superRefine","validateCatalogSeedEntry","modelProviderCatalogEntrySchema","extend","models","entry","ctx","length","addIssue","code","path","message","some","model","modelProviderCatalogResponseSchema","providers","apiKeyCredentialFields","credentialField","azureCredentialFields","cloudflareAiGatewayCredentialFields","cloudflareWorkersAiCredentialFields","MODEL_PROVIDER_CATALOG_SEED","supportedProvider","unsupportedProvider","getModelProviderEntry","find","listSupportedModelProviders","filter","has","defaultModel","credentialFields","map","field","unsupportedReason"],"mappings":"AAAA,SACEA,sBAAsB,EACtBC,mBAAmB,EACnBC,yBAAyB,EACzBC,sBAAsB,EACtBC,eAAe,EACfC,sBAAsB,EACtBC,aAAa,EACbC,qBAAqB,EACrBC,wBAAwB,QACnB,6BAA6B;AACpC,SAAQC,CAAC,QAAO,MAAM;AACtB,SAEEC,gBAAgB,EAChBC,4BAA4B,EAE5BC,8BAA8B,QACzB,yBAAyB;AAGhC,SACEZ,sBAAsB,EACtBC,mBAAmB,EACnBC,yBAAyB,EACzBC,sBAAsB,EACtBC,eAAe,EACfC,sBAAsB,EACtBC,aAAa,EACbC,qBAAqB,EACrBC,wBAAwB,GACxB;AAEF,OAAO,MAAMK,yBAAyBJ,EAAEK,MAAM,CAAC;IAC7CC,IAAIN,EAAEO,MAAM,GAAGC,GAAG,CAAC;IACnBC,OAAOT,EAAEO,MAAM,GAAGC,GAAG,CAAC;AACxB,GAAG;AAIH,OAAO,MAAME,qCAAqCV,EAAEK,MAAM,CAAC;IACzDM,KAAKX,EAAEO,MAAM,GAAGC,GAAG,CAAC;IACpBC,OAAOT,EAAEO,MAAM,GAAGC,GAAG,CAAC;IACtBI,QAAQZ,EAAEa,OAAO;AACnB,GAAG;AAIH,OAAO,MAAMC,mCAAmCd,EAAEe,IAAI,CAAC;IAAC;IAAa;CAAc,EAAE;AAIrF,MAAMC,4BAA4B,IAAIC,IAAYf;AAClD,MAAMgB,8BAA8B,IAAID,IAAYd;AAEpD,MAAMgB,qCAAqCnB,EAAEK,MAAM,CAAC;IAClDC,IAAIL;IACJQ,OAAOT,EAAEO,MAAM,GAAGC,GAAG,CAAC;IACtBY,gBAAgBN;IAChBO,eAAerB,EAAEO,MAAM,GAAGC,GAAG,CAAC,GAAGc,QAAQ;IACzCC,mBAAmBvB,EAAEwB,KAAK,CAACd;IAC3Be,oBAAoBzB,EAAEO,MAAM,GAAGC,GAAG,CAAC,GAAGc,QAAQ;AAChD;AAEA,OAAO,MAAMI,iCACXP,mCAAmCQ,WAAW,CAACC,0BAA0B;AAI3E,OAAO,MAAMC,kCAAkCV,mCAC5CW,MAAM,CAAC;IACNC,QAAQ/B,EAAEwB,KAAK,CAACpB;AAClB,GACCuB,WAAW,CAAC,CAACK,OAAOC;IACnBL,yBAAyBI,OAAOC;IAEhC,IAAID,MAAMZ,cAAc,KAAK,aAAa;QACxC,IAAIY,MAAMD,MAAM,CAACG,MAAM,KAAK,GAAG;YAC7BD,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAS;gBAChBC,SAAS;YACX;QACF;QACA,IACEN,MAAMX,aAAa,KAAK,QACxB,CAACW,MAAMD,MAAM,CAACQ,IAAI,CAAC,CAACC,QAAUA,MAAMlC,EAAE,KAAK0B,MAAMX,aAAa,GAC9D;YACAY,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAgB;gBACvBC,SAAS;YACX;QACF;IACF,OAAO,IAAIN,MAAMD,MAAM,CAACG,MAAM,GAAG,GAAG;QAClCD,IAAIE,QAAQ,CAAC;YACXC,MAAM;YACNC,MAAM;gBAAC;aAAS;YAChBC,SAAS;QACX;IACF;AACF,GAAG;AAIL,OAAO,MAAMG,qCAAqCzC,EAAEK,MAAM,CAAC;IACzDqC,WAAW1C,EAAEwB,KAAK,CAACK;AACrB,GAAG;AAIH,MAAMc,yBAAyB;IAACC,gBAAgB,WAAW,WAAW;CAAM;AAE5E,MAAMC,wBAAwB;IAC5BD,gBAAgB,YAAY,YAAY;IACxCA,gBAAgB,WAAW,WAAW;CACvC;AAED,MAAME,sCAAsC;IAC1CF,gBAAgB,WAAW,aAAa;IACxCA,gBAAgB,cAAc,cAAc;IAC5CA,gBAAgB,cAAc,cAAc;CAC7C;AAED,MAAMG,sCAAsC;IAC1CH,gBAAgB,WAAW,aAAa;IACxCA,gBAAgB,cAAc,cAAc;CAC7C;AAED,OAAO,MAAMI,8BAA6D;IACxEC,kBAAkB,aAAa,aAAa;IAC5CA,kBAAkB,YAAY,YAAY;IAC1CA,kBAAkB,0BAA0B,gBAAgB,eAAeJ;IAC3EI,kBAAkB,UAAU,UAAU;IACtCA,kBAAkB,YAAY,YAAY;IAC1CA,kBAAkB,UAAU,UAAU;IACtCA,kBAAkB,UAAU,oBAAoB;IAChDA,kBAAkB,WAAW,WAAW;IACxCA,kBAAkB,QAAQ,QAAQ;IAClCA,kBAAkB,YAAY,YAAY;IAC1CA,kBACE,yBACA,yBACA,mBACAH;IAEFG,kBACE,yBACA,yBACA,iCACAF;IAEFE,kBAAkB,OAAO,OAAO;IAChCA,kBAAkB,cAAc,cAAc;IAC9CA,kBAAkB,qBAAqB,qBAAqB;IAC5DA,kBAAkB,OAAO,QAAQ;IACjCA,kBAAkB,iBAAiB,kBAAkB;IACrDA,kBAAkB,YAAY,YAAY;IAC1CA,kBAAkB,eAAe,eAAe;IAChDA,kBAAkB,eAAe,gBAAgB;IACjDA,kBAAkB,aAAa,aAAa;IAC5CA,kBAAkB,YAAY,eAAe;IAC7CA,kBAAkB,eAAe,eAAe;IAChDA,kBAAkB,mBAAmB,mBAAmB;IACxDA,kBAAkB,sBAAsB,sBAAsB;IAC9DA,kBAAkB,WAAW,WAAW;IACxCA,kBAAkB,cAAc,cAAc;IAC9CA,kBAAkB,cAAc,eAAe;IAC/CA,kBAAkB,iBAAiB,kBAAkB;IACrDA,kBAAkB,UAAU,UAAU;IACtCA,kBAAkB,wBAAwB,wBAAwB;IAClEA,kBAAkB,yBAAyB,yBAAyB;IACpEA,kBAAkB,yBAAyB,yBAAyB;IACpEC,oBACE,kBACA,kBACA;IAEFA,oBACE,iBACA,oBACA;IAEFA,oBACE,gBACA,gBACA;IAEFA,oBACE,kBACA,kBACA;CAEH,CAAC;AAEF,OAAO,SAASC,sBAAsB7C,EAAU;IAC9C,OAAO0C,4BAA4BI,IAAI,CAAC,CAACpB,QAAUA,MAAM1B,EAAE,KAAKA;AAClE;AAEA,OAAO,SAAS+C;IACd,OAAOL,4BAA4BM,MAAM,CAAC,CAACtB,QAAUA,MAAMZ,cAAc,KAAK;AAChF;AAEA,SAASQ,yBACPI,KAAyD,EACzDC,GAAoB;IAEpB,IAAID,MAAMZ,cAAc,KAAK,aAAa;QACxC,IAAI,CAACJ,0BAA0BuC,GAAG,CAACvB,MAAM1B,EAAE,GAAG;YAC5C2B,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAK;gBACZC,SAAS;YACX;QACF;QACA,IAAIN,MAAMX,aAAa,KAAK,MAAM;YAChCY,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAgB;gBACvBC,SAAS;YACX;QACF;QACA,IAAIN,MAAMT,iBAAiB,CAACW,MAAM,KAAK,GAAG;YACxCD,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAoB;gBAC3BC,SAAS;YACX;QACF;QACA,IAAIN,MAAMP,kBAAkB,KAAK,MAAM;YACrCQ,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAqB;gBAC5BC,SAAS;YACX;QACF;IACF,OAAO;QACL,IAAI,CAACpB,4BAA4BqC,GAAG,CAACvB,MAAM1B,EAAE,GAAG;YAC9C2B,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAK;gBACZC,SAAS;YACX;QACF;QACA,IAAIN,MAAMX,aAAa,KAAK,MAAM;YAChCY,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAgB;gBACvBC,SAAS;YACX;QACF;QACA,IAAIN,MAAMT,iBAAiB,CAACW,MAAM,GAAG,GAAG;YACtCD,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAoB;gBAC3BC,SAAS;YACX;QACF;QACA,IAAIN,MAAMP,kBAAkB,KAAK,MAAM;YACrCQ,IAAIE,QAAQ,CAAC;gBACXC,MAAM;gBACNC,MAAM;oBAAC;iBAAqB;gBAC5BC,SAAS;YACX;QACF;IACF;AACF;AAEA,SAASM,gBACPjC,GAAW,EACXF,KAAa,EACbG,MAAe;IAEf,OAAO;QAACD;QAAKF;QAAOG;IAAM;AAC5B;AAEA,SAASqC,kBACP3C,EAA4B,EAC5BG,KAAa,EACb+C,YAAoB,EACpBC,mBAAsDd,sBAAsB;IAE5E,OAAO;QACLrC;QACAG;QACAW,gBAAgB;QAChBC,eAAemC;QACfjC,mBAAmBkC,iBAAiBC,GAAG,CAAC,CAACC,QAAW,CAAA;gBAAC,GAAGA,KAAK;YAAA,CAAA;QAC7DlC,oBAAoB;IACtB;AACF;AAEA,SAASyB,oBACP5C,EAAmB,EACnBG,KAAa,EACbmD,iBAAyB;IAEzB,OAAO;QACLtD;QACAG;QACAW,gBAAgB;QAChBC,eAAe;QACfE,mBAAmB,EAAE;QACrBE,oBAAoBmC;IACtB;AACF"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
- export declare const SUPPORTED_MODEL_PROVIDER_IDS: readonly ["anthropic", "ant-ling", "azure-openai-responses", "openai", "deepseek", "nvidia", "google", "mistral", "groq", "cerebras", "cloudflare-ai-gateway", "cloudflare-workers-ai", "xai", "openrouter", "vercel-ai-gateway", "zai", "zai-coding-cn", "opencode", "opencode-go", "huggingface", "fireworks", "together", "kimi-coding", "minimax", "minimax-cn", "moonshotai", "moonshotai-cn", "xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"];
2
+ export declare const SUPPORTED_MODEL_PROVIDER_IDS: readonly ["anthropic", "ant-ling", "azure-openai-responses", "openai", "deepseek", "nvidia", "google", "mistral", "groq", "cerebras", "cloudflare-ai-gateway", "cloudflare-workers-ai", "xai", "openrouter", "vercel-ai-gateway", "zai", "zai-coding-cn", "opencode", "opencode-go", "huggingface", "fireworks", "together", "kimi-coding", "qwen-token-plan", "qwen-token-plan-cn", "minimax", "minimax-cn", "moonshotai", "moonshotai-cn", "xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp"];
3
3
  export declare const UNSUPPORTED_MODEL_PROVIDER_IDS: readonly ["amazon-bedrock", "google-vertex", "openai-codex", "github-copilot"];
4
- export declare const MODEL_PROVIDER_IDS: readonly ["anthropic", "ant-ling", "azure-openai-responses", "openai", "deepseek", "nvidia", "google", "mistral", "groq", "cerebras", "cloudflare-ai-gateway", "cloudflare-workers-ai", "xai", "openrouter", "vercel-ai-gateway", "zai", "zai-coding-cn", "opencode", "opencode-go", "huggingface", "fireworks", "together", "kimi-coding", "minimax", "minimax-cn", "moonshotai", "moonshotai-cn", "xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp", "amazon-bedrock", "google-vertex", "openai-codex", "github-copilot"];
4
+ export declare const MODEL_PROVIDER_IDS: readonly ["anthropic", "ant-ling", "azure-openai-responses", "openai", "deepseek", "nvidia", "google", "mistral", "groq", "cerebras", "cloudflare-ai-gateway", "cloudflare-workers-ai", "xai", "openrouter", "vercel-ai-gateway", "zai", "zai-coding-cn", "opencode", "opencode-go", "huggingface", "fireworks", "together", "kimi-coding", "qwen-token-plan", "qwen-token-plan-cn", "minimax", "minimax-cn", "moonshotai", "moonshotai-cn", "xiaomi", "xiaomi-token-plan-cn", "xiaomi-token-plan-ams", "xiaomi-token-plan-sgp", "amazon-bedrock", "google-vertex", "openai-codex", "github-copilot"];
5
5
  export declare const supportedModelProviderIdSchema: z.ZodEnum<{
6
6
  anthropic: "anthropic";
7
7
  "ant-ling": "ant-ling";
@@ -26,6 +26,8 @@ export declare const supportedModelProviderIdSchema: z.ZodEnum<{
26
26
  fireworks: "fireworks";
27
27
  together: "together";
28
28
  "kimi-coding": "kimi-coding";
29
+ "qwen-token-plan": "qwen-token-plan";
30
+ "qwen-token-plan-cn": "qwen-token-plan-cn";
29
31
  minimax: "minimax";
30
32
  "minimax-cn": "minimax-cn";
31
33
  moonshotai: "moonshotai";
@@ -59,6 +61,8 @@ export declare const providerIdSchema: z.ZodEnum<{
59
61
  fireworks: "fireworks";
60
62
  together: "together";
61
63
  "kimi-coding": "kimi-coding";
64
+ "qwen-token-plan": "qwen-token-plan";
65
+ "qwen-token-plan-cn": "qwen-token-plan-cn";
62
66
  minimax: "minimax";
63
67
  "minimax-cn": "minimax-cn";
64
68
  moonshotai: "moonshotai";
@@ -1 +1 @@
1
- {"version":3,"file":"model-provider-id.d.ts","sourceRoot":"","sources":["../../src/schemas/model-provider-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,4BAA4B,ydAgC/B,CAAC;AAEX,eAAO,MAAM,8BAA8B,gFAKjC,CAAC;AAEX,eAAO,MAAM,kBAAkB,8hBAGrB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuC,CAAC;AACnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAC3D,eAAO,MAAM,2BAA2B,QAAsC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,aAAgD,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"model-provider-id.d.ts","sourceRoot":"","sources":["../../src/schemas/model-provider-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,4BAA4B,kgBAkC/B,CAAC;AAEX,eAAO,MAAM,8BAA8B,gFAKjC,CAAC;AAEX,eAAO,MAAM,kBAAkB,ukBAGrB,CAAC;AAEX,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuC,CAAC;AACnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAC3D,eAAO,MAAM,2BAA2B,QAAsC,CAAC;AAC/E,eAAO,MAAM,sBAAsB,aAAgD,CAAC;AAEpF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE"}
@@ -23,6 +23,8 @@ export const SUPPORTED_MODEL_PROVIDER_IDS = [
23
23
  'fireworks',
24
24
  'together',
25
25
  'kimi-coding',
26
+ 'qwen-token-plan',
27
+ 'qwen-token-plan-cn',
26
28
  'minimax',
27
29
  'minimax-cn',
28
30
  'moonshotai',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schemas/model-provider-id.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const SUPPORTED_MODEL_PROVIDER_IDS = [\n 'anthropic',\n 'ant-ling',\n 'azure-openai-responses',\n 'openai',\n 'deepseek',\n 'nvidia',\n 'google',\n 'mistral',\n 'groq',\n 'cerebras',\n 'cloudflare-ai-gateway',\n 'cloudflare-workers-ai',\n 'xai',\n 'openrouter',\n 'vercel-ai-gateway',\n 'zai',\n 'zai-coding-cn',\n 'opencode',\n 'opencode-go',\n 'huggingface',\n 'fireworks',\n 'together',\n 'kimi-coding',\n 'minimax',\n 'minimax-cn',\n 'moonshotai',\n 'moonshotai-cn',\n 'xiaomi',\n 'xiaomi-token-plan-cn',\n 'xiaomi-token-plan-ams',\n 'xiaomi-token-plan-sgp',\n] as const;\n\nexport const UNSUPPORTED_MODEL_PROVIDER_IDS = [\n 'amazon-bedrock',\n 'google-vertex',\n 'openai-codex',\n 'github-copilot',\n] as const;\n\nexport const MODEL_PROVIDER_IDS = [\n ...SUPPORTED_MODEL_PROVIDER_IDS,\n ...UNSUPPORTED_MODEL_PROVIDER_IDS,\n] as const;\n\nexport const supportedModelProviderIdSchema = z.enum(SUPPORTED_MODEL_PROVIDER_IDS);\nexport const providerIdSchema = z.enum(MODEL_PROVIDER_IDS);\nexport const MODEL_PROVIDER_SLUG_PATTERN = /^[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$/;\nexport const modelProviderRefSchema = z.string().regex(MODEL_PROVIDER_SLUG_PATTERN);\n\nexport type SupportedModelProviderId = z.infer<typeof supportedModelProviderIdSchema>;\nexport type ModelProviderId = z.infer<typeof providerIdSchema>;\nexport type ModelProviderRef = z.infer<typeof modelProviderRefSchema>;\n\nexport function isReservedModelProviderId(value: string): boolean {\n return (MODEL_PROVIDER_IDS as readonly string[]).includes(value);\n}\n"],"names":["z","SUPPORTED_MODEL_PROVIDER_IDS","UNSUPPORTED_MODEL_PROVIDER_IDS","MODEL_PROVIDER_IDS","supportedModelProviderIdSchema","enum","providerIdSchema","MODEL_PROVIDER_SLUG_PATTERN","modelProviderRefSchema","string","regex","isReservedModelProviderId","value","includes"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,OAAO,MAAMC,+BAA+B;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAU;AAEX,OAAO,MAAMC,iCAAiC;IAC5C;IACA;IACA;IACA;CACD,CAAU;AAEX,OAAO,MAAMC,qBAAqB;OAC7BF;OACAC;CACJ,CAAU;AAEX,OAAO,MAAME,iCAAiCJ,EAAEK,IAAI,CAACJ,8BAA8B;AACnF,OAAO,MAAMK,mBAAmBN,EAAEK,IAAI,CAACF,oBAAoB;AAC3D,OAAO,MAAMI,8BAA8B,oCAAoC;AAC/E,OAAO,MAAMC,yBAAyBR,EAAES,MAAM,GAAGC,KAAK,CAACH,6BAA6B;AAMpF,OAAO,SAASI,0BAA0BC,KAAa;IACrD,OAAO,AAACT,mBAAyCU,QAAQ,CAACD;AAC5D"}
1
+ {"version":3,"sources":["../../src/schemas/model-provider-id.ts"],"sourcesContent":["import {z} from 'zod';\n\nexport const SUPPORTED_MODEL_PROVIDER_IDS = [\n 'anthropic',\n 'ant-ling',\n 'azure-openai-responses',\n 'openai',\n 'deepseek',\n 'nvidia',\n 'google',\n 'mistral',\n 'groq',\n 'cerebras',\n 'cloudflare-ai-gateway',\n 'cloudflare-workers-ai',\n 'xai',\n 'openrouter',\n 'vercel-ai-gateway',\n 'zai',\n 'zai-coding-cn',\n 'opencode',\n 'opencode-go',\n 'huggingface',\n 'fireworks',\n 'together',\n 'kimi-coding',\n 'qwen-token-plan',\n 'qwen-token-plan-cn',\n 'minimax',\n 'minimax-cn',\n 'moonshotai',\n 'moonshotai-cn',\n 'xiaomi',\n 'xiaomi-token-plan-cn',\n 'xiaomi-token-plan-ams',\n 'xiaomi-token-plan-sgp',\n] as const;\n\nexport const UNSUPPORTED_MODEL_PROVIDER_IDS = [\n 'amazon-bedrock',\n 'google-vertex',\n 'openai-codex',\n 'github-copilot',\n] as const;\n\nexport const MODEL_PROVIDER_IDS = [\n ...SUPPORTED_MODEL_PROVIDER_IDS,\n ...UNSUPPORTED_MODEL_PROVIDER_IDS,\n] as const;\n\nexport const supportedModelProviderIdSchema = z.enum(SUPPORTED_MODEL_PROVIDER_IDS);\nexport const providerIdSchema = z.enum(MODEL_PROVIDER_IDS);\nexport const MODEL_PROVIDER_SLUG_PATTERN = /^[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$/;\nexport const modelProviderRefSchema = z.string().regex(MODEL_PROVIDER_SLUG_PATTERN);\n\nexport type SupportedModelProviderId = z.infer<typeof supportedModelProviderIdSchema>;\nexport type ModelProviderId = z.infer<typeof providerIdSchema>;\nexport type ModelProviderRef = z.infer<typeof modelProviderRefSchema>;\n\nexport function isReservedModelProviderId(value: string): boolean {\n return (MODEL_PROVIDER_IDS as readonly string[]).includes(value);\n}\n"],"names":["z","SUPPORTED_MODEL_PROVIDER_IDS","UNSUPPORTED_MODEL_PROVIDER_IDS","MODEL_PROVIDER_IDS","supportedModelProviderIdSchema","enum","providerIdSchema","MODEL_PROVIDER_SLUG_PATTERN","modelProviderRefSchema","string","regex","isReservedModelProviderId","value","includes"],"mappings":"AAAA,SAAQA,CAAC,QAAO,MAAM;AAEtB,OAAO,MAAMC,+BAA+B;IAC1C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAAU;AAEX,OAAO,MAAMC,iCAAiC;IAC5C;IACA;IACA;IACA;CACD,CAAU;AAEX,OAAO,MAAMC,qBAAqB;OAC7BF;OACAC;CACJ,CAAU;AAEX,OAAO,MAAME,iCAAiCJ,EAAEK,IAAI,CAACJ,8BAA8B;AACnF,OAAO,MAAMK,mBAAmBN,EAAEK,IAAI,CAACF,oBAAoB;AAC3D,OAAO,MAAMI,8BAA8B,oCAAoC;AAC/E,OAAO,MAAMC,yBAAyBR,EAAES,MAAM,GAAGC,KAAK,CAACH,6BAA6B;AAMpF,OAAO,SAASI,0BAA0BC,KAAa;IACrD,OAAO,AAACT,mBAAyCU,QAAQ,CAACD;AAC5D"}