@nac3/forge-cli 1.0.28 → 1.0.31

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 (71) hide show
  1. package/dist/bin/yf.d.ts.map +1 -1
  2. package/dist/bin/yf.js +5 -0
  3. package/dist/bin/yf.js.map +1 -1
  4. package/dist/chat/claude.d.ts +13 -0
  5. package/dist/chat/claude.d.ts.map +1 -1
  6. package/dist/chat/claude.js +18 -5
  7. package/dist/chat/claude.js.map +1 -1
  8. package/dist/chat/claude_cli.d.ts.map +1 -1
  9. package/dist/chat/claude_cli.js +10 -0
  10. package/dist/chat/claude_cli.js.map +1 -1
  11. package/dist/chat/panel.d.ts.map +1 -1
  12. package/dist/chat/panel.js +111 -10
  13. package/dist/chat/panel.js.map +1 -1
  14. package/dist/chat/server.d.ts.map +1 -1
  15. package/dist/chat/server.js +35 -2
  16. package/dist/chat/server.js.map +1 -1
  17. package/dist/chat/tools.d.ts.map +1 -1
  18. package/dist/chat/tools.js +56 -34
  19. package/dist/chat/tools.js.map +1 -1
  20. package/dist/commands/federation.d.ts +17 -0
  21. package/dist/commands/federation.d.ts.map +1 -0
  22. package/dist/commands/federation.js +145 -0
  23. package/dist/commands/federation.js.map +1 -0
  24. package/dist/core/brain_capabilities.d.ts +64 -0
  25. package/dist/core/brain_capabilities.d.ts.map +1 -0
  26. package/dist/core/brain_capabilities.js +119 -0
  27. package/dist/core/brain_capabilities.js.map +1 -0
  28. package/dist/core/brain_config.d.ts +1 -1
  29. package/dist/core/brain_config.d.ts.map +1 -1
  30. package/dist/core/brain_config.js +7 -0
  31. package/dist/core/brain_config.js.map +1 -1
  32. package/dist/core/cost_router.d.ts +6 -0
  33. package/dist/core/cost_router.d.ts.map +1 -1
  34. package/dist/core/cost_router.js +122 -8
  35. package/dist/core/cost_router.js.map +1 -1
  36. package/dist/core/federation_config.d.ts +17 -0
  37. package/dist/core/federation_config.d.ts.map +1 -0
  38. package/dist/core/federation_config.js +77 -0
  39. package/dist/core/federation_config.js.map +1 -0
  40. package/dist/core/provider_keys.d.ts +1 -1
  41. package/dist/core/provider_keys.d.ts.map +1 -1
  42. package/dist/core/provider_keys.js +3 -0
  43. package/dist/core/provider_keys.js.map +1 -1
  44. package/dist/core/provider_models.d.ts.map +1 -1
  45. package/dist/core/provider_models.js +10 -0
  46. package/dist/core/provider_models.js.map +1 -1
  47. package/dist/llm/federation_client.d.ts +66 -0
  48. package/dist/llm/federation_client.d.ts.map +1 -0
  49. package/dist/llm/federation_client.js +166 -0
  50. package/dist/llm/federation_client.js.map +1 -0
  51. package/dist/llm/federation_host.d.ts +16 -0
  52. package/dist/llm/federation_host.d.ts.map +1 -0
  53. package/dist/llm/federation_host.js +132 -0
  54. package/dist/llm/federation_host.js.map +1 -0
  55. package/dist/llm/gemini_client.d.ts.map +1 -1
  56. package/dist/llm/gemini_client.js +15 -6
  57. package/dist/llm/gemini_client.js.map +1 -1
  58. package/dist/llm/multi_provider_client.d.ts.map +1 -1
  59. package/dist/llm/multi_provider_client.js +27 -0
  60. package/dist/llm/multi_provider_client.js.map +1 -1
  61. package/dist/llm/openai_client.d.ts +4 -0
  62. package/dist/llm/openai_client.d.ts.map +1 -1
  63. package/dist/llm/openai_client.js +18 -6
  64. package/dist/llm/openai_client.js.map +1 -1
  65. package/dist/llm/single_step.d.ts +63 -0
  66. package/dist/llm/single_step.d.ts.map +1 -0
  67. package/dist/llm/single_step.js +171 -0
  68. package/dist/llm/single_step.js.map +1 -0
  69. package/dist/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/package.json +1 -1
@@ -7,6 +7,7 @@ import { MistralClient } from './mistral_client.js';
7
7
  import { CohereClient } from './cohere_client.js';
8
8
  import { OllamaClient } from './ollama_client.js';
9
9
  import { ManagedBrainClient } from './managed_client.js';
10
+ import { FederationChildBrainClient } from './federation_client.js';
10
11
  import { recordCostEvent } from '../core/cost_meter.js';
11
12
  /**
12
13
  * Returns a client that talks to the configured provider for the
@@ -70,6 +71,26 @@ export function makeUnifiedClient(sel) {
70
71
  const c = new CohereClient({ apiKey: sel.api_key, defaultModel: sel.model });
71
72
  return wrap(c, sel);
72
73
  }
74
+ if (sel.provider === 'qwen') {
75
+ /* F4 -- Alibaba Qwen via DashScope (OpenAI-compatible). */
76
+ if (!sel.api_key)
77
+ return null;
78
+ const q = new OpenAIClient({
79
+ apiKey: sel.api_key, defaultModel: sel.model,
80
+ baseUrl: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions',
81
+ });
82
+ return wrap(q, sel);
83
+ }
84
+ if (sel.provider === 'zai') {
85
+ /* F4 -- Zhipu GLM via the z.ai OpenAI-compatible endpoint. */
86
+ if (!sel.api_key)
87
+ return null;
88
+ const z = new OpenAIClient({
89
+ apiKey: sel.api_key, defaultModel: sel.model,
90
+ baseUrl: 'https://api.z.ai/api/paas/v4/chat/completions',
91
+ });
92
+ return wrap(z, sel);
93
+ }
73
94
  if (sel.provider === 'ollama') {
74
95
  /* PND-109 -- local open-weight brain. Keyless: api_key stays null;
75
96
  * the base URL (default localhost:11434) is the only config. */
@@ -85,6 +106,12 @@ export function makeUnifiedClient(sel) {
85
106
  });
86
107
  return wrap(managed, sel);
87
108
  }
109
+ if (sel.provider === 'federation') {
110
+ /* F4 -- route inference to the remote parent. Credentials come from
111
+ * federation.json + the vault (read inside the client), not sel. */
112
+ const fed = new FederationChildBrainClient({ tier: sel.tier });
113
+ return wrap(fed, sel);
114
+ }
88
115
  return null;
89
116
  }
90
117
  function wrap(underlying, sel) {
@@ -1 +1 @@
1
- {"version":3,"file":"multi_provider_client.js","sourceRoot":"","sources":["../../src/llm/multi_provider_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi_provider_client.js","sourceRoot":"","sources":["../../src/llm/multi_provider_client.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,9 @@ export interface OpenAIClientOptions {
62
62
  apiKey: string;
63
63
  defaultModel?: string;
64
64
  fetchImpl?: typeof fetch;
65
+ /** Full chat/completions URL. Defaults to OpenAI; override for any
66
+ * OpenAI-compatible provider (Qwen/DashScope, z.ai GLM, etc). */
67
+ baseUrl?: string;
65
68
  }
66
69
  export declare class OpenAIApiError extends Error {
67
70
  status: number;
@@ -71,6 +74,7 @@ export declare class OpenAIClient {
71
74
  private apiKey;
72
75
  private fetchImpl;
73
76
  private defaultModel;
77
+ private baseUrl;
74
78
  constructor(opts: OpenAIClientOptions);
75
79
  chat(req: OpenAIChatRequest): Promise<OpenAIChatResponse>;
76
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai_client.d.ts","sourceRoot":"","sources":["../../src/llm/openai_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAoCD,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,mBAAmB;IAS/B,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAmLhE"}
1
+ {"version":3,"file":"openai_client.d.ts","sourceRoot":"","sources":["../../src/llm/openai_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;sEACkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0CD,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,mBAAmB;IAU/B,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2LhE"}
@@ -12,6 +12,7 @@ export class OpenAIClient {
12
12
  apiKey;
13
13
  fetchImpl;
14
14
  defaultModel;
15
+ baseUrl;
15
16
  constructor(opts) {
16
17
  if (!opts.apiKey || opts.apiKey.trim() === '') {
17
18
  throw new Error('OpenAIClient: apiKey required');
@@ -19,6 +20,7 @@ export class OpenAIClient {
19
20
  this.apiKey = opts.apiKey.trim();
20
21
  this.fetchImpl = opts.fetchImpl ?? fetch;
21
22
  this.defaultModel = opts.defaultModel ?? DEFAULT_OPENAI_MODEL;
23
+ this.baseUrl = opts.baseUrl ?? OPENAI_BASE;
22
24
  }
23
25
  async chat(req) {
24
26
  if (req.tools && !req.runTool) {
@@ -44,10 +46,20 @@ export class OpenAIClient {
44
46
  messages.push({ role: 'system', content: req.system });
45
47
  }
46
48
  for (const m of req.messages) {
47
- messages.push({
48
- role: m.role,
49
- content: m.content,
50
- });
49
+ /* Front 1 -- fold image attachments on a user turn into
50
+ * content parts (text first, then image_url data URLs). */
51
+ if (m.role === 'user' && m.attachments && m.attachments.length > 0) {
52
+ const parts = [];
53
+ if (m.content && m.content.length > 0)
54
+ parts.push({ type: 'text', text: m.content });
55
+ for (const a of m.attachments) {
56
+ parts.push({ type: 'image_url', image_url: { url: 'data:' + a.media_type + ';base64,' + a.data } });
57
+ }
58
+ messages.push({ role: m.role, content: parts });
59
+ }
60
+ else {
61
+ messages.push({ role: m.role, content: m.content });
62
+ }
51
63
  }
52
64
  /* Translate ToolSpec[] into OpenAI's function-calling shape.
53
65
  * input_schema is JSON Schema in both. */
@@ -74,7 +86,7 @@ export class OpenAIClient {
74
86
  body.tools = tools;
75
87
  body.tool_choice = 'auto';
76
88
  }
77
- const res = await this.fetchImpl(OPENAI_BASE, {
89
+ const res = await this.fetchImpl(this.baseUrl, {
78
90
  method: 'POST',
79
91
  headers: {
80
92
  'content-type': 'application/json',
@@ -101,7 +113,7 @@ export class OpenAIClient {
101
113
  /* No tool calls -> we're done. Return the text. */
102
114
  if (!aMessage.tool_calls || aMessage.tool_calls.length === 0 || finishReason !== 'tool_calls') {
103
115
  return {
104
- text: aMessage.content || '',
116
+ text: typeof aMessage.content === 'string' ? aMessage.content : '',
105
117
  tokensIn: totalIn,
106
118
  tokensOut: totalOut,
107
119
  model: serverModel,
@@ -1 +1 @@
1
- {"version":3,"file":"openai_client.js","sourceRoot":"","sources":["../../src/llm/openai_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai_client.js","sourceRoot":"","sources":["../../src/llm/openai_client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * single_step -- ONE model call returning the assistant turn (text + tool_use
3
+ * requests) WITHOUT executing any tools. F4 (2026-06-20).
4
+ *
5
+ * The federation PARENT uses this to answer a child's inference job: it runs
6
+ * exactly one step of its configured brain and returns the raw assistant turn;
7
+ * the CHILD executes the tool calls on its own disk and submits the next step.
8
+ * This is the inverse of the looping provider clients (which run runTool
9
+ * internally) -- here tools must NOT run on the parent.
10
+ *
11
+ * Providers covered in v1:
12
+ * - 'anthropic' -> /v1/messages (also GLM via the z.ai
13
+ * Anthropic-compatible endpoint when baseUrl is set).
14
+ * - openai-compatible -> /chat/completions ('openai','deepseek','xai',
15
+ * 'mistral','ollama', GLM-openai, Qwen/DashScope).
16
+ * Gemini ('google_ai') is not yet wired here (parent brains for federation are
17
+ * the API set above); a clear error is thrown if requested.
18
+ *
19
+ * ASCII-only.
20
+ */
21
+ import type { BrainProvider } from '../core/brain_config.js';
22
+ export interface SingleStepToolSpec {
23
+ name: string;
24
+ description: string;
25
+ input_schema: Record<string, unknown>;
26
+ }
27
+ /** Anthropic-shape message (content is a string or a block array). This is the
28
+ * shape the federation child sends. */
29
+ export interface AnthroMessage {
30
+ role: 'user' | 'assistant';
31
+ content: unknown;
32
+ }
33
+ export interface SingleStepRequest {
34
+ provider: BrainProvider;
35
+ model: string;
36
+ apiKey: string | null;
37
+ /** Override the provider base origin (GLM anthropic-compat / openai-compat,
38
+ * Ollama localhost, DashScope). No trailing slash. */
39
+ baseUrl?: string;
40
+ messages: AnthroMessage[];
41
+ system?: string;
42
+ tools?: SingleStepToolSpec[];
43
+ maxTokens?: number;
44
+ fetchImpl?: typeof fetch;
45
+ }
46
+ export interface SingleStepResult {
47
+ text: string;
48
+ tool_calls: Array<{
49
+ id: string;
50
+ name: string;
51
+ input: Record<string, unknown>;
52
+ }>;
53
+ stop_reason: 'end_turn' | 'tool_use' | 'max_tokens' | 'unknown';
54
+ tokens_in: number;
55
+ tokens_out: number;
56
+ model: string;
57
+ }
58
+ export declare class SingleStepError extends Error {
59
+ status: number;
60
+ constructor(message: string, status?: number);
61
+ }
62
+ export declare function singleStep(req: SingleStepRequest): Promise<SingleStepResult>;
63
+ //# sourceMappingURL=single_step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single_step.d.ts","sourceRoot":"","sources":["../../src/llm/single_step.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;wCACwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;2DACuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAChF,WAAW,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAI;CACxC;AAoBD,wBAAsB,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWlF"}
@@ -0,0 +1,171 @@
1
+ export class SingleStepError extends Error {
2
+ status;
3
+ constructor(message, status = 0) { super(message); this.name = 'SingleStepError'; this.status = status; }
4
+ }
5
+ const OPENAI_COMPAT = new Set([
6
+ 'openai', 'deepseek', 'xai', 'mistral', 'qwen', 'zai', 'ollama',
7
+ ]);
8
+ function defaultBaseFor(provider) {
9
+ switch (provider) {
10
+ case 'anthropic': return 'https://api.anthropic.com';
11
+ case 'openai': return 'https://api.openai.com/v1';
12
+ case 'deepseek': return 'https://api.deepseek.com';
13
+ case 'xai': return 'https://api.x.ai/v1';
14
+ case 'mistral': return 'https://api.mistral.ai/v1';
15
+ case 'qwen': return 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1';
16
+ case 'zai': return 'https://api.z.ai/api/paas/v4';
17
+ case 'ollama': return (process.env.YF_OLLAMA_BASE_URL || 'http://localhost:11434/v1');
18
+ default: return '';
19
+ }
20
+ }
21
+ export async function singleStep(req) {
22
+ const fetchImpl = req.fetchImpl ?? fetch;
23
+ const maxTokens = req.maxTokens ?? 4096;
24
+ if (req.provider === 'anthropic') {
25
+ return anthropicStep(req, fetchImpl, maxTokens);
26
+ }
27
+ if (OPENAI_COMPAT.has(req.provider)) {
28
+ return openAiCompatStep(req, fetchImpl, maxTokens);
29
+ }
30
+ throw new SingleStepError('federation parent brain provider not supported: ' + req.provider, 400);
31
+ }
32
+ /* ---------------- Anthropic / GLM anthropic-compat ---------------- */
33
+ async function anthropicStep(req, fetchImpl, maxTokens) {
34
+ if (!req.apiKey)
35
+ throw new SingleStepError('anthropic brain requires an api key', 400);
36
+ const base = (req.baseUrl || defaultBaseFor('anthropic')).replace(/\/+$/, '');
37
+ const body = {
38
+ model: req.model,
39
+ max_tokens: maxTokens,
40
+ messages: req.messages.map((m) => ({ role: m.role, content: m.content })),
41
+ };
42
+ if (req.system)
43
+ body.system = req.system;
44
+ if (req.tools && req.tools.length > 0) {
45
+ body.tools = req.tools.map((t) => ({ name: t.name, description: t.description, input_schema: t.input_schema }));
46
+ }
47
+ const r = await fetchImpl(base + '/v1/messages', {
48
+ method: 'POST',
49
+ headers: { 'x-api-key': req.apiKey, 'anthropic-version': '2023-06-01', 'content-type': 'application/json' },
50
+ body: JSON.stringify(body),
51
+ });
52
+ const j = await r.json().catch(() => ({}));
53
+ if (!r.ok)
54
+ throw new SingleStepError(j.error?.message || ('anthropic HTTP ' + r.status), r.status);
55
+ let text = '';
56
+ const tool_calls = [];
57
+ for (const b of j.content ?? []) {
58
+ if (b.type === 'text' && b.text)
59
+ text += b.text;
60
+ else if (b.type === 'tool_use' && b.id && b.name)
61
+ tool_calls.push({ id: b.id, name: b.name, input: b.input ?? {} });
62
+ }
63
+ return {
64
+ text,
65
+ tool_calls,
66
+ stop_reason: mapStop(j.stop_reason, tool_calls.length > 0),
67
+ tokens_in: j.usage?.input_tokens ?? 0,
68
+ tokens_out: j.usage?.output_tokens ?? 0,
69
+ model: j.model ?? req.model,
70
+ };
71
+ }
72
+ /** Convert the Anthropic-shape conversation into OpenAI chat messages
73
+ * (assistant tool_calls + role:'tool' results). */
74
+ function toOpenAiMessages(messages, system) {
75
+ const out = [];
76
+ if (system)
77
+ out.push({ role: 'system', content: system });
78
+ for (const m of messages) {
79
+ if (typeof m.content === 'string') {
80
+ out.push({ role: m.role, content: m.content });
81
+ continue;
82
+ }
83
+ const blocks = Array.isArray(m.content) ? m.content : [];
84
+ if (m.role === 'assistant') {
85
+ let text = '';
86
+ const toolCalls = [];
87
+ for (const b of blocks) {
88
+ if (b.type === 'text')
89
+ text += b.text;
90
+ else if (b.type === 'tool_use') {
91
+ toolCalls.push({ id: b.id, type: 'function', function: { name: b.name, arguments: JSON.stringify(b.input ?? {}) } });
92
+ }
93
+ }
94
+ const msg = { role: 'assistant', content: text || null };
95
+ if (toolCalls.length > 0)
96
+ msg.tool_calls = toolCalls;
97
+ out.push(msg);
98
+ }
99
+ else {
100
+ /* user: text blocks -> a user message; tool_result blocks -> tool msgs. */
101
+ let userText = '';
102
+ for (const b of blocks) {
103
+ if (b.type === 'text')
104
+ userText += b.text;
105
+ else if (b.type === 'tool_result') {
106
+ out.push({ role: 'tool', tool_call_id: b.tool_use_id, content: b.content });
107
+ }
108
+ }
109
+ if (userText)
110
+ out.push({ role: 'user', content: userText });
111
+ }
112
+ }
113
+ return out;
114
+ }
115
+ async function openAiCompatStep(req, fetchImpl, maxTokens) {
116
+ const keyless = req.provider === 'ollama';
117
+ if (!req.apiKey && !keyless)
118
+ throw new SingleStepError(req.provider + ' brain requires an api key', 400);
119
+ const base = (req.baseUrl || defaultBaseFor(req.provider)).replace(/\/+$/, '');
120
+ const body = {
121
+ model: req.model,
122
+ max_tokens: maxTokens,
123
+ messages: toOpenAiMessages(req.messages, req.system),
124
+ };
125
+ if (req.tools && req.tools.length > 0) {
126
+ body.tools = req.tools.map((t) => ({ type: 'function', function: { name: t.name, description: t.description, parameters: t.input_schema } }));
127
+ body.tool_choice = 'auto';
128
+ }
129
+ const headers = { 'content-type': 'application/json' };
130
+ if (req.apiKey)
131
+ headers['authorization'] = 'Bearer ' + req.apiKey;
132
+ const r = await fetchImpl(base + '/chat/completions', { method: 'POST', headers, body: JSON.stringify(body) });
133
+ const j = await r.json().catch(() => ({}));
134
+ if (!r.ok)
135
+ throw new SingleStepError(j.error?.message || (req.provider + ' HTTP ' + r.status), r.status);
136
+ const choice = j.choices && j.choices[0];
137
+ const msg = choice?.message;
138
+ const tool_calls = [];
139
+ for (const tc of msg?.tool_calls ?? []) {
140
+ let input = {};
141
+ try {
142
+ input = JSON.parse(tc.function.arguments || '{}');
143
+ }
144
+ catch {
145
+ input = {};
146
+ }
147
+ tool_calls.push({ id: tc.id, name: tc.function.name, input });
148
+ }
149
+ return {
150
+ text: typeof msg?.content === 'string' ? msg.content : '',
151
+ tool_calls,
152
+ stop_reason: mapStop(choice?.finish_reason, tool_calls.length > 0),
153
+ tokens_in: j.usage?.prompt_tokens ?? 0,
154
+ tokens_out: j.usage?.completion_tokens ?? 0,
155
+ model: j.model ?? req.model,
156
+ };
157
+ }
158
+ function mapStop(raw, hasToolCalls) {
159
+ if (hasToolCalls)
160
+ return 'tool_use';
161
+ switch (raw) {
162
+ case 'end_turn':
163
+ case 'stop': return 'end_turn';
164
+ case 'tool_use':
165
+ case 'tool_calls': return 'tool_use';
166
+ case 'max_tokens':
167
+ case 'length': return 'max_tokens';
168
+ default: return 'unknown';
169
+ }
170
+ }
171
+ //# sourceMappingURL=single_step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single_step.js","sourceRoot":"","sources":["../../src/llm/single_step.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export declare const VERSION = "1.0.28";
5
+ export declare const VERSION = "1.0.31";
6
6
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export const VERSION = '1.0.28';
5
+ export const VERSION = '1.0.31';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nac3/forge-cli",
3
- "version": "1.0.28",
3
+ "version": "1.0.31",
4
4
  "description": "Yujin Forge -- voice-first NAC-3 React development framework. CLI + chat panel + spec ingest + 10-format document reader + voice loop.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pablo Kuschnirof <pablo@rpaforce.com>",