persona-core-opencode 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,6 +12,7 @@ PersonaCore 是一个 AI 人格/角色框架,允许你定义具有特定能力
12
12
  - **会话管理**:自动管理会话状态,支持多轮对话
13
13
  - **工具调用追踪**:记录所有工具调用历史
14
14
  - **流式输出**:支持实时回调获取 AI 响应和工具调用过程
15
+ - **OSS 对象存储**:支持将数据上传到 S3 兼容的对象存储服务
15
16
 
16
17
  ## 安装
17
18
 
@@ -427,6 +428,23 @@ response: {
427
428
  }
428
429
  ```
429
430
 
431
+ **保存到对象存储(OSS):**
432
+
433
+ ```typescript
434
+ response: {
435
+ type: 'json',
436
+ saveToOss: {
437
+ enabled: true,
438
+ bucket: 'my-bucket', // OSS bucket 名称
439
+ keyField: 'ossKey', // 从输入参数获取存储路径
440
+ dataPath: 'data.image', // 从响应中提取数据
441
+ sourceType: 'auto', // 'base64' | 'url' | 'auto'
442
+ contentType: 'image/png', // 可选:MIME 类型
443
+ outputField: 'ossUrl', // 输出字段名
444
+ },
445
+ }
446
+ ```
447
+
430
448
  ## 异步任务支持
431
449
 
432
450
  对于需要轮询等待结果的异步 API,可以配置 `asyncMode`:
@@ -468,6 +486,243 @@ const asyncAction: ActionNodeType = {
468
486
  };
469
487
  ```
470
488
 
489
+ ## OSS 服务(对象存储)
490
+
491
+ PersonaCore 提供了 `OssService` 用于将数据上传到 S3 兼容的对象存储服务(如 MinIO、阿里云 OSS、AWS S3 等)。
492
+
493
+ ### 配置
494
+
495
+ 在 `.env` 中配置 OSS 相关环境变量:
496
+
497
+ ```bash
498
+ OSS_ENDPOINT=http://localhost:9000 # S3 兼容的 endpoint
499
+ OSS_ACCESS_KEY_ID=minioadmin # Access Key
500
+ OSS_SECRET_ACCESS_KEY=minioadmin # Secret Key
501
+ OSS_REGION=cn-beijing # 可选
502
+ ```
503
+
504
+ ### 基本使用
505
+
506
+ ```typescript
507
+ import { OssService, createOssServiceFromEnv } from 'persona-core-opencode';
508
+
509
+ // 从环境变量创建
510
+ const ossService = createOssServiceFromEnv();
511
+
512
+ // 或手动配置
513
+ const ossService = new OssService({
514
+ endpoint: 'http://localhost:9000',
515
+ accessKeyId: 'minioadmin',
516
+ secretAccessKey: 'minioadmin',
517
+ region: 'cn-beijing',
518
+ });
519
+ ```
520
+
521
+ ### 上传方式
522
+
523
+ **1. 上传 Base64 数据:**
524
+
525
+ ```typescript
526
+ const result = await ossService.uploadFromBase64(
527
+ 'my-bucket',
528
+ 'images/photo.png',
529
+ 'data:image/png;base64,iVBORw0KGgoAAAA...',
530
+ { contentType: 'image/png' }
531
+ );
532
+ console.log(result.url); // http://localhost:9000/my-bucket/images/photo.png
533
+ ```
534
+
535
+ **2. 从 URL 下载后上传:**
536
+
537
+ ```typescript
538
+ const result = await ossService.uploadFromUrl(
539
+ 'my-bucket',
540
+ 'videos/movie.mp4',
541
+ 'https://example.com/video.mp4'
542
+ );
543
+ ```
544
+
545
+ **3. 上传 Buffer:**
546
+
547
+ ```typescript
548
+ const buffer = Buffer.from('Hello, World!', 'utf8');
549
+ const result = await ossService.uploadFromBuffer(
550
+ 'my-bucket',
551
+ 'files/hello.txt',
552
+ buffer,
553
+ { contentType: 'text/plain' }
554
+ );
555
+ ```
556
+
557
+ ### 使用 SaveToOssConfig
558
+
559
+ 最灵活的方式是使用 `uploadWithConfig()`,可以自动处理各种数据格式:
560
+
561
+ ```typescript
562
+ import { SaveToOssConfig } from 'persona-core-opencode';
563
+
564
+ // API 响应
565
+ const apiResponse = {
566
+ status: 'success',
567
+ data: { images: [{ base64: 'iVBORw0KGgoAAAA...' }] }
568
+ };
569
+
570
+ // 配置
571
+ const config: SaveToOssConfig = {
572
+ enabled: true,
573
+ bucket: 'my-bucket',
574
+ keyField: 'ossKey', // 从 inputs 中获取存储路径
575
+ dataPath: 'data.images[0].base64', // JSONPath 提取数据
576
+ sourceType: 'auto', // 自动检测 base64 或 URL
577
+ outputField: 'ossUrl',
578
+ };
579
+
580
+ // 上传
581
+ const result = await ossService.uploadWithConfig(
582
+ apiResponse,
583
+ config,
584
+ { ossKey: 'generated/image.png' }
585
+ );
586
+
587
+ console.log(result);
588
+ // { success: true, url: '...', key: '...', bucket: '...', bytesUploaded: 70, contentType: 'image/png' }
589
+ ```
590
+
591
+ ### SaveToOssConfig 字段
592
+
593
+ | 字段 | 类型 | 必填 | 说明 |
594
+ |------|------|------|------|
595
+ | `enabled` | boolean | 是 | 是否启用 |
596
+ | `bucket` | string | 是 | OSS bucket 名称 |
597
+ | `keyField` | string | 是 | 从 inputs 中获取 key 的字段名 |
598
+ | `dataPath` | string | 否 | JSONPath 从响应中提取数据 |
599
+ | `sourceType` | 'base64' \| 'url' \| 'auto' | 否 | 数据类型,默认 'auto' |
600
+ | `contentType` | string | 否 | MIME 类型,可自动推断 |
601
+ | `outputField` | string | 否 | 输出字段名,默认 'ossUrl' |
602
+
603
+ ### 异步任务结果上传
604
+
605
+ 在 `asyncMode.resultFetch` 中配置 `saveToOss`,可以在异步任务完成后自动上传结果:
606
+
607
+ ```typescript
608
+ const videoAction: ActionNodeType = {
609
+ kind: 'action',
610
+ id: 'generate_video_to_oss',
611
+ name: '生成视频并上传到 OSS',
612
+ executionType: 'api_call',
613
+ apiConfig: { ... },
614
+ asyncMode: {
615
+ isAsync: true,
616
+ taskIdPath: 'data.taskId',
617
+ statusCheck: { ... },
618
+ resultFetch: {
619
+ extractFromStatus: { videoUrl: 'data.videoUrl' },
620
+ // 任务完成后自动上传到 OSS
621
+ saveToOss: {
622
+ enabled: true,
623
+ bucket: 'videos',
624
+ keyField: 'ossKey',
625
+ dataPath: 'data.videoUrl',
626
+ sourceType: 'url',
627
+ outputField: 'ossUrl',
628
+ },
629
+ },
630
+ },
631
+ inputFields: [
632
+ { name: 'prompt', required: true, typeHint: 'string' },
633
+ { name: 'ossKey', required: true, typeHint: 'string', description: 'OSS 存储路径' },
634
+ ],
635
+ outputFields: [
636
+ { name: 'ossUrl', required: true, typeHint: 'string', description: '上传后的 OSS URL' },
637
+ ],
638
+ };
639
+ ```
640
+
641
+ ### PersonaCoreClient 自动 saveToOss
642
+
643
+ 将 `OssService` 传入 `PersonaCoreClient`,工具调用完成后会自动根据 ActionType 配置执行 saveToOss:
644
+
645
+ ```typescript
646
+ import {
647
+ PersonaCoreClient,
648
+ createOssServiceFromEnv,
649
+ ActionNodeType,
650
+ OssUploadRecord,
651
+ } from 'persona-core-opencode';
652
+
653
+ // 1. 创建 OssService(从环境变量)
654
+ const ossService = createOssServiceFromEnv();
655
+
656
+ // 2. 创建带 ossService 的客户端
657
+ const client = new PersonaCoreClient({
658
+ ossService, // 传入 OssService
659
+ });
660
+
661
+ // 3. 定义带 saveToOss 配置的 ActionType
662
+ const imageAction: ActionNodeType = {
663
+ kind: 'action',
664
+ id: 'generate_image',
665
+ name: '生成图片',
666
+ executionType: 'api_call',
667
+ apiConfig: {
668
+ url: 'https://api.example.com/generate',
669
+ method: 'POST',
670
+ response: {
671
+ saveToOss: {
672
+ enabled: true,
673
+ bucket: 'images',
674
+ keyField: 'ossKey',
675
+ dataPath: 'data.image',
676
+ sourceType: 'auto',
677
+ outputField: 'ossUrl',
678
+ },
679
+ },
680
+ },
681
+ inputFields: [
682
+ { name: 'prompt', required: true, typeHint: 'string' },
683
+ { name: 'ossKey', required: true, typeHint: 'string' },
684
+ ],
685
+ outputFields: [
686
+ { name: 'ossUrl', required: true, typeHint: 'string' },
687
+ ],
688
+ };
689
+
690
+ // 4. 创建 Persona 并发送消息
691
+ const personaId = await client.createPersona({
692
+ name: 'Image Generator',
693
+ systemPrompt: 'You are an image generation assistant.',
694
+ actionTypes: [imageAction],
695
+ });
696
+
697
+ const result = await client.sendMessage(personaId, 'Generate an image of a cat');
698
+
699
+ // 5. 检查自动上传结果
700
+ if (result.ossUploads && result.ossUploads.length > 0) {
701
+ for (const upload of result.ossUploads) {
702
+ if (upload.success) {
703
+ console.log(`Tool: ${upload.tool}`);
704
+ console.log(`Uploaded to: ${upload.url}`);
705
+ console.log(`Bytes: ${upload.bytesUploaded}`);
706
+ } else {
707
+ console.error(`Upload failed: ${upload.error}`);
708
+ }
709
+ }
710
+ }
711
+ ```
712
+
713
+ **OssUploadRecord 字段**
714
+
715
+ | 字段 | 类型 | 说明 |
716
+ |------|------|------|
717
+ | `tool` | string | 触发上传的工具名称 |
718
+ | `success` | boolean | 上传是否成功 |
719
+ | `url` | string | 上传后的对象 URL |
720
+ | `key` | string | 对象的 key |
721
+ | `bucket` | string | bucket 名称 |
722
+ | `bytesUploaded` | number | 上传的字节数 |
723
+ | `contentType` | string | MIME 类型 |
724
+ | `error` | string | 错误信息(失败时) |
725
+
471
726
  ## 项目结构
472
727
 
473
728
  ```
@@ -483,6 +738,8 @@ persona-core-opencode/
483
738
  │ │ └── sessionHandle.ts # 会话句柄
484
739
  │ ├── generators/
485
740
  │ │ └── toolFileGenerator.ts # 工具文件生成
741
+ │ ├── services/
742
+ │ │ └── ossService.ts # OSS 对象存储服务
486
743
  │ └── types/
487
744
  │ ├── common.ts # 通用类型
488
745
  │ ├── nodes.ts # 节点类型定义
@@ -6,6 +6,7 @@ import { PersonaRegistry, RegisteredPersona } from '../persona/personaRegistry.j
6
6
  import { SessionManager } from '../session/sessionManager.js';
7
7
  import { SessionExecutionResult, StreamCallbacks } from '../session/sessionHandle.js';
8
8
  import { Persona, CreatePersonaInput } from '../types/persona.js';
9
+ import { OssService } from '../services/ossService.js';
9
10
  /**
10
11
  * PersonaCoreClient 配置
11
12
  */
@@ -16,6 +17,8 @@ export interface PersonaCoreClientConfig {
16
17
  opencodePath?: string;
17
18
  /** 执行超时时间(毫秒) */
18
19
  defaultTimeoutMs?: number;
20
+ /** OSS 服务实例(可选,用于自动执行 saveToOss) */
21
+ ossService?: OssService;
19
22
  }
20
23
  /**
21
24
  * 发送消息的选项
@@ -40,12 +43,15 @@ export interface SendMessageStreamingOptions extends SendMessageOptions {
40
43
  * 核心能力:
41
44
  * 1. Persona 的 create/delete
42
45
  * 2. 给 Persona 的某个 session 发送消息(如果不指定 session,则新建)
46
+ * 3. 自动执行 saveToOss(如果配置了 ossService)
43
47
  */
44
48
  export declare class PersonaCoreClient {
45
49
  private personaRegistry;
46
50
  private sessionManager;
47
51
  /** 存储每个 persona 的活跃 session */
48
52
  private activeSessions;
53
+ /** OSS 服务实例 */
54
+ private ossService?;
49
55
  constructor(config?: PersonaCoreClientConfig);
50
56
  /**
51
57
  * 静态工厂方法
@@ -110,6 +116,15 @@ export declare class PersonaCoreClient {
110
116
  * ```
111
117
  */
112
118
  sendMessageStreaming(personaId: string, message: string, options: SendMessageStreamingOptions): Promise<SessionExecutionResult>;
119
+ /**
120
+ * 处理工具调用结果的 saveToOss
121
+ * 检查每个工具调用是否配置了 saveToOss,如果是则执行上传
122
+ */
123
+ private processSaveToOss;
124
+ /**
125
+ * 根据工具名称查找对应的 ActionNodeType
126
+ */
127
+ private findActionTypeByToolName;
113
128
  /**
114
129
  * @deprecated 使用 createPersona 代替
115
130
  */
@@ -1 +1 @@
1
- {"version":3,"file":"personaCoreClient.d.ts","sourceRoot":"","sources":["../../src/client/personaCoreClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAiB,sBAAsB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,aAAa;IACb,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,+BAA+B;IAC/B,OAAO,CAAC,cAAc,CAAyC;gBAEnD,MAAM,GAAE,uBAA4B;IAWhD;;OAEG;WACU,MAAM,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQrF;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/D;;;OAGG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI5D;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQtC;;;;;;;OAOG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC;IA2ClC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC;IAgDlC;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAQtE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iBAAiB,IAAI,cAAc;CAGpC"}
1
+ {"version":3,"file":"personaCoreClient.d.ts","sourceRoot":"","sources":["../../src/client/personaCoreClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAiB,sBAAsB,EAAE,eAAe,EAAmB,MAAM,6BAA6B,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oCAAoC;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,aAAa;IACb,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,+BAA+B;IAC/B,OAAO,CAAC,cAAc,CAAyC;IAC/D,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,CAAa;gBAEpB,MAAM,GAAE,uBAA4B;IAYhD;;OAEG;WACU,MAAM,CAAC,MAAM,GAAE,uBAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQrF;;;;OAIG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/D;;;OAGG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI5D;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAQtC;;;;;;;OAOG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC;IAyDlC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC;IA8DlC;;;OAGG;YACW,gBAAgB;IAyD9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjE;;OAEG;IACG,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAQtE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iBAAiB,IAAI,cAAc;CAGpC"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { PersonaRegistry } from '../persona/personaRegistry.js';
6
6
  import { SessionManager } from '../session/sessionManager.js';
7
+ import { getToolFileName } from '../generators/toolFileGenerator.js';
7
8
  /**
8
9
  * PersonaCoreClient
9
10
  * 主要的客户端 API,提供 Persona 管理和消息发送功能
@@ -11,12 +12,15 @@ import { SessionManager } from '../session/sessionManager.js';
11
12
  * 核心能力:
12
13
  * 1. Persona 的 create/delete
13
14
  * 2. 给 Persona 的某个 session 发送消息(如果不指定 session,则新建)
15
+ * 3. 自动执行 saveToOss(如果配置了 ossService)
14
16
  */
15
17
  export class PersonaCoreClient {
16
18
  personaRegistry;
17
19
  sessionManager;
18
20
  /** 存储每个 persona 的活跃 session */
19
21
  activeSessions = new Map();
22
+ /** OSS 服务实例 */
23
+ ossService;
20
24
  constructor(config = {}) {
21
25
  this.personaRegistry = new PersonaRegistry({
22
26
  workspaceRoot: config.workspaceRoot,
@@ -26,6 +30,7 @@ export class PersonaCoreClient {
26
30
  opencodePath: config.opencodePath,
27
31
  defaultTimeoutMs: config.defaultTimeoutMs,
28
32
  });
33
+ this.ossService = config.ossService;
29
34
  }
30
35
  /**
31
36
  * 静态工厂方法
@@ -116,6 +121,16 @@ export class PersonaCoreClient {
116
121
  const sessionKey = `${personaId}:${result.sessionId}`;
117
122
  this.activeSessions.set(sessionKey, sessionHandle);
118
123
  }
124
+ // 处理 saveToOss(如果配置了 ossService)
125
+ if (this.ossService && result.success && result.toolCalls.length > 0) {
126
+ const registeredPersona = this.personaRegistry.getPersona(personaId);
127
+ if (registeredPersona) {
128
+ const ossUploads = await this.processSaveToOss(result.toolCalls, registeredPersona.persona.actionTypes);
129
+ if (ossUploads.length > 0) {
130
+ result.ossUploads = ossUploads;
131
+ }
132
+ }
133
+ }
119
134
  return result;
120
135
  }
121
136
  /**
@@ -179,9 +194,82 @@ export class PersonaCoreClient {
179
194
  const sessionKey = `${personaId}:${result.sessionId}`;
180
195
  this.activeSessions.set(sessionKey, sessionHandle);
181
196
  }
197
+ // 处理 saveToOss(如果配置了 ossService)
198
+ if (this.ossService && result.success && result.toolCalls.length > 0) {
199
+ const registeredPersona = this.personaRegistry.getPersona(personaId);
200
+ if (registeredPersona) {
201
+ const ossUploads = await this.processSaveToOss(result.toolCalls, registeredPersona.persona.actionTypes);
202
+ if (ossUploads.length > 0) {
203
+ result.ossUploads = ossUploads;
204
+ }
205
+ }
206
+ }
182
207
  return result;
183
208
  }
184
209
  // ============================================================
210
+ // saveToOss 处理
211
+ // ============================================================
212
+ /**
213
+ * 处理工具调用结果的 saveToOss
214
+ * 检查每个工具调用是否配置了 saveToOss,如果是则执行上传
215
+ */
216
+ async processSaveToOss(toolCalls, actionTypes) {
217
+ const uploads = [];
218
+ for (const toolCall of toolCalls) {
219
+ // 跳过没有结果的工具调用
220
+ if (!toolCall.result)
221
+ continue;
222
+ // 查找对应的 ActionNodeType
223
+ const actionType = this.findActionTypeByToolName(toolCall.tool, actionTypes);
224
+ if (!actionType)
225
+ continue;
226
+ // 检查是否配置了 saveToOss
227
+ const saveToOssConfig = actionType.apiConfig?.response?.saveToOss;
228
+ if (!saveToOssConfig?.enabled)
229
+ continue;
230
+ // 执行上传
231
+ try {
232
+ // 解析工具调用结果
233
+ let resultData;
234
+ try {
235
+ resultData = JSON.parse(toolCall.result);
236
+ }
237
+ catch {
238
+ // 如果不是 JSON,直接使用原始字符串
239
+ resultData = toolCall.result;
240
+ }
241
+ // 使用 OssService 上传
242
+ const uploadResult = await this.ossService.uploadWithConfig(resultData, saveToOssConfig, toolCall.args);
243
+ uploads.push({
244
+ tool: toolCall.tool,
245
+ success: true,
246
+ url: uploadResult.url,
247
+ key: uploadResult.key,
248
+ bucket: uploadResult.bucket,
249
+ bytesUploaded: uploadResult.bytesUploaded,
250
+ contentType: uploadResult.contentType,
251
+ });
252
+ }
253
+ catch (error) {
254
+ uploads.push({
255
+ tool: toolCall.tool,
256
+ success: false,
257
+ error: error instanceof Error ? error.message : String(error),
258
+ });
259
+ }
260
+ }
261
+ return uploads;
262
+ }
263
+ /**
264
+ * 根据工具名称查找对应的 ActionNodeType
265
+ */
266
+ findActionTypeByToolName(toolName, actionTypes) {
267
+ return actionTypes.find(actionType => {
268
+ const expectedToolName = getToolFileName(actionType);
269
+ return expectedToolName === toolName;
270
+ });
271
+ }
272
+ // ============================================================
185
273
  // 兼容旧 API(标记为 deprecated,后续版本移除)
186
274
  // ============================================================
187
275
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"personaCoreClient.js","sourceRoot":"","sources":["../../src/client/personaCoreClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"personaCoreClient.js","sourceRoot":"","sources":["../../src/client/personaCoreClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolFileGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/toolFileGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAiBrF;AA2XD;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"toolFileGenerator.d.ts","sourceRoot":"","sources":["../../src/generators/toolFileGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAmB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAiBrF;AA0eD;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAOlE"}
@@ -40,6 +40,10 @@ function generateImports(actionType) {
40
40
  imports.push('import * as path from "path"');
41
41
  }
42
42
  }
43
+ // API 调用可能需要保存到 OSS
44
+ if (actionType.executionType === 'api_call' && actionType.apiConfig?.response?.saveToOss?.enabled) {
45
+ imports.push('import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"');
46
+ }
43
47
  return imports.join('\n');
44
48
  }
45
49
  /**
@@ -274,6 +278,113 @@ function generateApiCallBody(actionType) {
274
278
  rawResponse: JSON.stringify(data).substring(0, 500),
275
279
  });
276
280
  }`;
281
+ }
282
+ else if (responseConfig?.saveToOss?.enabled) {
283
+ // 保存到 OSS
284
+ const ossConfig = responseConfig.saveToOss;
285
+ responseCode = `
286
+ const data = await response.json();
287
+ ${getByPathHelper}
288
+
289
+ // Extract data for OSS upload
290
+ const ossKey = args.${ossConfig.keyField} as string;
291
+ if (!ossKey) {
292
+ return JSON.stringify({
293
+ success: false,
294
+ error: 'ossKey field "${ossConfig.keyField}" is required but not provided',
295
+ });
296
+ }
297
+
298
+ const rawData = getByPath(data, ${JSON.stringify(ossConfig.dataPath)});
299
+
300
+ // Handle different data formats
301
+ let dataToUpload: string | null = null;
302
+ if (typeof rawData === 'string') {
303
+ dataToUpload = rawData;
304
+ } else if (rawData && typeof rawData === 'object' && 'url' in rawData) {
305
+ dataToUpload = (rawData as { url: string }).url;
306
+ }
307
+
308
+ if (!dataToUpload) {
309
+ return JSON.stringify({
310
+ success: false,
311
+ error: 'No data found at path: ${ossConfig.dataPath}',
312
+ extractedValue: rawData,
313
+ rawResponse: JSON.stringify(data).substring(0, 500),
314
+ });
315
+ }
316
+
317
+ // Parse OSS configuration from environment variables
318
+ const ossEndpoint = process.env.OSS_ENDPOINT;
319
+ const ossAccessKeyId = process.env.OSS_ACCESS_KEY_ID;
320
+ const ossSecretAccessKey = process.env.OSS_SECRET_ACCESS_KEY;
321
+ const ossRegion = process.env.OSS_REGION || 'us-east-1';
322
+
323
+ if (!ossEndpoint || !ossAccessKeyId || !ossSecretAccessKey) {
324
+ return JSON.stringify({
325
+ success: false,
326
+ error: 'OSS environment variables not configured (OSS_ENDPOINT, OSS_ACCESS_KEY_ID, OSS_SECRET_ACCESS_KEY)',
327
+ });
328
+ }
329
+
330
+ // Create S3 client
331
+ const s3Client = new S3Client({
332
+ endpoint: ossEndpoint,
333
+ region: ossRegion,
334
+ credentials: {
335
+ accessKeyId: ossAccessKeyId,
336
+ secretAccessKey: ossSecretAccessKey,
337
+ },
338
+ forcePathStyle: true,
339
+ });
340
+
341
+ // Parse base64 data
342
+ let buffer: Buffer;
343
+ let contentType = ${JSON.stringify(ossConfig.contentType || 'application/octet-stream')};
344
+
345
+ if (dataToUpload.startsWith('data:')) {
346
+ // Handle data URI format: data:image/png;base64,xxxxx
347
+ const matches = dataToUpload.match(/^data:([^;]+);base64,(.+)$/);
348
+ if (matches) {
349
+ contentType = matches[1];
350
+ buffer = Buffer.from(matches[2], 'base64');
351
+ } else {
352
+ // Fallback: just remove the prefix
353
+ const base64Part = dataToUpload.split(',')[1] || dataToUpload;
354
+ buffer = Buffer.from(base64Part, 'base64');
355
+ }
356
+ } else {
357
+ // Assume it's pure base64
358
+ buffer = Buffer.from(dataToUpload, 'base64');
359
+ }
360
+
361
+ // Upload to OSS
362
+ const bucket = ${JSON.stringify(ossConfig.bucket)};
363
+ try {
364
+ await s3Client.send(new PutObjectCommand({
365
+ Bucket: bucket,
366
+ Key: ossKey,
367
+ Body: buffer,
368
+ ContentType: contentType,
369
+ }));
370
+ } catch (uploadError: any) {
371
+ return JSON.stringify({
372
+ success: false,
373
+ error: 'Failed to upload to OSS: ' + uploadError.message,
374
+ });
375
+ }
376
+
377
+ // Build the URL
378
+ const ossUrl = ossEndpoint.replace(/\\/$/, '') + '/' + bucket + '/' + ossKey;
379
+
380
+ return JSON.stringify({
381
+ success: true,
382
+ ${ossConfig.outputField || 'ossUrl'}: ossUrl,
383
+ ossKey: ossKey,
384
+ bucket: bucket,
385
+ bytesUploaded: buffer.length,
386
+ contentType: contentType,
387
+ });`;
277
388
  }
278
389
  else if (responseConfig?.extract) {
279
390
  const extractCode = Object.entries(responseConfig.extract)
@@ -1 +1 @@
1
- {"version":3,"file":"toolFileGenerator.js","sourceRoot":"","sources":["../../src/generators/toolFileGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolFileGenerator.js","sourceRoot":"","sources":["../../src/generators/toolFileGenerator.ts"],"names":[],"mappings":"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"}