@teamlearners/clawops 0.38.0 → 0.39.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.
Files changed (34) hide show
  1. package/README.md +36 -0
  2. package/dist/agent/index.cjs +77 -77
  3. package/dist/agent/index.js +4 -4
  4. package/dist/agent/livekit/index.cjs +9 -9
  5. package/dist/agent/livekit/index.js +2 -2
  6. package/dist/{chunk-VYGIWHRU.js → chunk-54GBFYZT.js} +2 -2
  7. package/dist/chunk-54GBFYZT.js.map +1 -0
  8. package/dist/chunk-FI2WH67N.cjs +8 -0
  9. package/dist/{chunk-NXCYAYFT.cjs.map → chunk-FI2WH67N.cjs.map} +1 -1
  10. package/dist/chunk-NDFDYCFM.js +6 -0
  11. package/dist/{chunk-J7UIB4EA.js.map → chunk-NDFDYCFM.js.map} +1 -1
  12. package/dist/{chunk-IYSPOOKH.cjs → chunk-OBGKLTIN.cjs} +2 -2
  13. package/dist/chunk-OBGKLTIN.cjs.map +1 -0
  14. package/dist/{chunk-ASQU6NA2.cjs → chunk-UOUNMCXE.cjs} +4 -4
  15. package/dist/{chunk-ASQU6NA2.cjs.map → chunk-UOUNMCXE.cjs.map} +1 -1
  16. package/dist/{chunk-EO25KTL4.js → chunk-W4XFMJFU.js} +3 -3
  17. package/dist/{chunk-EO25KTL4.js.map → chunk-W4XFMJFU.js.map} +1 -1
  18. package/dist/{client-ZOgpzAPe.d.cts → client-B_GblPxW.d.cts} +157 -10
  19. package/dist/{client-ZOgpzAPe.d.ts → client-B_GblPxW.d.ts} +157 -10
  20. package/dist/index.cjs +98 -40
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.js +70 -13
  25. package/dist/index.js.map +1 -1
  26. package/dist/solapi/index.cjs +7 -7
  27. package/dist/solapi/index.d.cts +2 -2
  28. package/dist/solapi/index.d.ts +2 -2
  29. package/dist/solapi/index.js +2 -2
  30. package/package.json +1 -1
  31. package/dist/chunk-IYSPOOKH.cjs.map +0 -1
  32. package/dist/chunk-J7UIB4EA.js +0 -6
  33. package/dist/chunk-NXCYAYFT.cjs +0 -8
  34. package/dist/chunk-VYGIWHRU.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, C as Call, u as CallContextParam, v as CallControlResponse, w as CallCreateParams, x as CallListParams, y as CallUpdateParams, z as Calls, D as ClawOps, E as ClawOpsError, F as ClawOpsErrorCode, G as ClawOpsOptions, H as ConflictError, I as InternalServerError, K as Kakao, J as KakaoChannel, L as KakaoChannelCategory, M as KakaoChannelCategoryList, N as KakaoChannelConnectParams, O as KakaoChannelListParams, P as KakaoChannelStatus, Q as KakaoChannels, R as KakaoFallbackParams, S as KakaoMessageCreateParams, T as KakaoSendParams, U as KakaoTemplate, V as KakaoTemplateListParams, W as KakaoTemplates, X as KakaoTokenRequest, Y as KakaoTokenRequestParams, Z as Message, _ as MessageCreateParams, $ as MessageListParams, a0 as Messages, a1 as NotFoundError, a2 as NumberCreateParams, a3 as NumberListItem, a4 as NumberUpdateParams, a5 as NumberUpdateResponse, a6 as Numbers, a7 as Page, a8 as PermissionDeniedError, a9 as PhoneNumber, aa as RateLimitError, ab as RecordingDownload, ac as Recordings, ad as RoutingType, ae as ServiceUnavailableError, af as SipCredential, ag as SipCredentials, ah as SipEndpoint, ai as SipEndpoints, aj as SolapiBridgeError, ak as TextMessageCreateParams, al as UnprocessableEntityError, am as WebhookLog, an as WebhookLogs, ao as WebhookVerificationError, ap as Webhooks, D as default } from './client-ZOgpzAPe.cjs';
1
+ export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, u as BrandBubbleType, v as BrandMessageCreateParams, w as BrandSendParams, C as Call, x as CallContextParam, y as CallControlResponse, z as CallCreateParams, D as CallListParams, E as CallUpdateParams, F as Calls, G as ClawOps, H as ClawOpsError, I as ClawOpsErrorCode, J as ClawOpsOptions, K as ConflictError, L as InternalServerError, M as Kakao, N as KakaoBrandTemplate, O as KakaoBrandTemplateListParams, P as KakaoBrandTemplates, Q as KakaoChannel, R as KakaoChannelCategory, S as KakaoChannelCategoryList, T as KakaoChannelConnectParams, U as KakaoChannelListParams, V as KakaoChannelStatus, W as KakaoChannels, X as KakaoFallbackParams, Y as KakaoMessageCreateParams, Z as KakaoSendParams, _ as KakaoTemplate, $ as KakaoTemplateListParams, a0 as KakaoTemplates, a1 as KakaoTokenRequest, a2 as KakaoTokenRequestParams, a3 as Message, a4 as MessageCreateParams, a5 as MessageListParams, a6 as Messages, a7 as NotFoundError, a8 as NumberCreateParams, a9 as NumberListItem, aa as NumberUpdateParams, ab as NumberUpdateResponse, ac as Numbers, ad as Page, ae as PermissionDeniedError, af as PhoneNumber, ag as RateLimitError, ah as RecordingDownload, ai as Recordings, aj as RoutingType, ak as ServiceUnavailableError, al as SipCredential, am as SipCredentials, an as SipEndpoint, ao as SipEndpoints, ap as SolapiBridgeError, aq as TextMessageCreateParams, ar as UnprocessableEntityError, as as WebhookLog, at as WebhookLogs, au as WebhookVerificationError, av as Webhooks, G as default } from './client-B_GblPxW.cjs';
2
2
  import { z } from 'zod';
3
3
 
4
4
  declare const VERSION: string;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, C as Call, u as CallContextParam, v as CallControlResponse, w as CallCreateParams, x as CallListParams, y as CallUpdateParams, z as Calls, D as ClawOps, E as ClawOpsError, F as ClawOpsErrorCode, G as ClawOpsOptions, H as ConflictError, I as InternalServerError, K as Kakao, J as KakaoChannel, L as KakaoChannelCategory, M as KakaoChannelCategoryList, N as KakaoChannelConnectParams, O as KakaoChannelListParams, P as KakaoChannelStatus, Q as KakaoChannels, R as KakaoFallbackParams, S as KakaoMessageCreateParams, T as KakaoSendParams, U as KakaoTemplate, V as KakaoTemplateListParams, W as KakaoTemplates, X as KakaoTokenRequest, Y as KakaoTokenRequestParams, Z as Message, _ as MessageCreateParams, $ as MessageListParams, a0 as Messages, a1 as NotFoundError, a2 as NumberCreateParams, a3 as NumberListItem, a4 as NumberUpdateParams, a5 as NumberUpdateResponse, a6 as Numbers, a7 as Page, a8 as PermissionDeniedError, a9 as PhoneNumber, aa as RateLimitError, ab as RecordingDownload, ac as Recordings, ad as RoutingType, ae as ServiceUnavailableError, af as SipCredential, ag as SipCredentials, ah as SipEndpoint, ai as SipEndpoints, aj as SolapiBridgeError, ak as TextMessageCreateParams, al as UnprocessableEntityError, am as WebhookLog, an as WebhookLogs, ao as WebhookVerificationError, ap as Webhooks, D as default } from './client-ZOgpzAPe.js';
1
+ export { A as APIClient, a as APIClientOptions, b as APIConnectionError, c as APIError, d as APIResponseValidationError, e as APIStatusError, f as APITimeoutError, g as AccountContext, h as AgentConnectionError, i as AgentError, j as AssignmentLink, k as AssignmentLinkAssignment, l as AssignmentLinkCreateResponse, m as AssignmentLinkStatus, n as AssignmentLinks, o as AuthenticationError, B as BadRequestError, p as BlockedChannel, q as BlockedRecipient, r as BlockedRecipientSource, s as BlockedRecipientStatus, t as BlockedRecipients, u as BrandBubbleType, v as BrandMessageCreateParams, w as BrandSendParams, C as Call, x as CallContextParam, y as CallControlResponse, z as CallCreateParams, D as CallListParams, E as CallUpdateParams, F as Calls, G as ClawOps, H as ClawOpsError, I as ClawOpsErrorCode, J as ClawOpsOptions, K as ConflictError, L as InternalServerError, M as Kakao, N as KakaoBrandTemplate, O as KakaoBrandTemplateListParams, P as KakaoBrandTemplates, Q as KakaoChannel, R as KakaoChannelCategory, S as KakaoChannelCategoryList, T as KakaoChannelConnectParams, U as KakaoChannelListParams, V as KakaoChannelStatus, W as KakaoChannels, X as KakaoFallbackParams, Y as KakaoMessageCreateParams, Z as KakaoSendParams, _ as KakaoTemplate, $ as KakaoTemplateListParams, a0 as KakaoTemplates, a1 as KakaoTokenRequest, a2 as KakaoTokenRequestParams, a3 as Message, a4 as MessageCreateParams, a5 as MessageListParams, a6 as Messages, a7 as NotFoundError, a8 as NumberCreateParams, a9 as NumberListItem, aa as NumberUpdateParams, ab as NumberUpdateResponse, ac as Numbers, ad as Page, ae as PermissionDeniedError, af as PhoneNumber, ag as RateLimitError, ah as RecordingDownload, ai as Recordings, aj as RoutingType, ak as ServiceUnavailableError, al as SipCredential, am as SipCredentials, an as SipEndpoint, ao as SipEndpoints, ap as SolapiBridgeError, aq as TextMessageCreateParams, ar as UnprocessableEntityError, as as WebhookLog, at as WebhookLogs, au as WebhookVerificationError, av as Webhooks, G as default } from './client-B_GblPxW.js';
2
2
  import { z } from 'zod';
3
3
 
4
4
  declare const VERSION: string;
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { DEFAULT_BASE_URL, DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, INITIAL_RETRY_DELAY, MAX_RETRY_DELAY } from './chunk-35XJNMFU.js';
2
- import { APITimeoutError, APIConnectionError, makeStatusError, APIResponseValidationError, ClawOpsError } from './chunk-VYGIWHRU.js';
3
- export { APIConnectionError, APIError, APIResponseValidationError, APIStatusError, APITimeoutError, AgentConnectionError, AgentError, AuthenticationError, BadRequestError, ClawOpsError, ConflictError, InternalServerError, NotFoundError, PermissionDeniedError, RateLimitError, ServiceUnavailableError, SolapiBridgeError, UnprocessableEntityError } from './chunk-VYGIWHRU.js';
4
- import { VERSION } from './chunk-J7UIB4EA.js';
5
- export { VERSION } from './chunk-J7UIB4EA.js';
2
+ import { APITimeoutError, APIConnectionError, makeStatusError, APIResponseValidationError, ClawOpsError } from './chunk-54GBFYZT.js';
3
+ export { APIConnectionError, APIError, APIResponseValidationError, APIStatusError, APITimeoutError, AgentConnectionError, AgentError, AuthenticationError, BadRequestError, ClawOpsError, ConflictError, InternalServerError, NotFoundError, PermissionDeniedError, RateLimitError, ServiceUnavailableError, SolapiBridgeError, UnprocessableEntityError } from './chunk-54GBFYZT.js';
4
+ import { VERSION } from './chunk-NDFDYCFM.js';
5
+ export { VERSION } from './chunk-NDFDYCFM.js';
6
6
  import { z } from 'zod';
7
7
  import { timingSafeEqual, createHmac } from 'crypto';
8
8
 
@@ -689,6 +689,27 @@ var KakaoTemplateSchema = z.object({
689
689
  createdAt: z.string(),
690
690
  updatedAt: z.string()
691
691
  }).passthrough();
692
+ var KakaoBrandTemplateSchema = z.object({
693
+ /** ClawOps 템플릿 리소스 ID. 발송의 `brand.templateId` 에 이 값을 쓴다. */
694
+ id: z.string(),
695
+ /** ClawOps 채널 리소스 ID. 발송의 `brand.channelId` 와 같은 값이다. */
696
+ channelId: z.string(),
697
+ name: z.string(),
698
+ chatBubbleType: z.string(),
699
+ /**
700
+ * 말풍선 본문.
701
+ *
702
+ * ⚠️ **유형에 따라 `null` 이다.** 본문이 담기는 자리가 유형마다 달라 `TEXT`·`IMAGE`·
703
+ * `WIDE` 에만 채워진다 — 나머지는 헤더·카드·상품명이 그 자리를 대신한다.
704
+ */
705
+ content: z.string().nullable(),
706
+ /** 와이드리스트형의 머리말. 다른 유형에서는 `null`. */
707
+ header: z.string().nullable(),
708
+ /** 발송 시 `brand.variables` 에 모두 채워야 하는 변수 이름. */
709
+ variables: z.array(z.string()),
710
+ createdAt: z.string(),
711
+ updatedAt: z.string()
712
+ }).passthrough();
692
713
  var KakaoChannelCategorySchema = z.object({
693
714
  /** 채널 연결의 `categoryCode` 에 그대로 보내는 값. */
694
715
  code: z.string(),
@@ -834,6 +855,32 @@ var KakaoTemplates = class extends APIResource {
834
855
  return page;
835
856
  }
836
857
  };
858
+ var KakaoBrandTemplates = class extends APIResource {
859
+ /**
860
+ * 한 채널의 브랜드 메시지 템플릿 목록.
861
+ *
862
+ * 응답의 `data[].id` 를 발송의 `brand.templateId` 로, `data[].channelId` 를
863
+ * `brand.channelId` 로 쓴다. `variables` 의 모든 항목을 `brand.variables` 에 채워야 한다.
864
+ *
865
+ * ⭐ **알림톡과 달리 검수가 없어** `sendable` 같은 칸이 없다 — 목록에 있으면 곧 보낼 수 있다.
866
+ */
867
+ async list(params, options = {}) {
868
+ const query = stripNotGiven({
869
+ channelId: params.channelId,
870
+ page: params.page,
871
+ pageSize: params.pageSize
872
+ });
873
+ const path = `${this._basePath}/kakao/brand-templates`;
874
+ const raw = await this._client._get(path, {
875
+ castTo: PageSchema(KakaoBrandTemplateSchema),
876
+ query: Object.keys(query).length ? query : void 0,
877
+ ...options
878
+ });
879
+ const page = new Page(raw.data, raw.meta);
880
+ page._setClient(this._client, path, KakaoBrandTemplateSchema, query);
881
+ return page;
882
+ }
883
+ };
837
884
  var Kakao = class extends APIResource {
838
885
  get channels() {
839
886
  return new KakaoChannels(this._client, this._accountId);
@@ -841,6 +888,10 @@ var Kakao = class extends APIResource {
841
888
  get templates() {
842
889
  return new KakaoTemplates(this._client, this._accountId);
843
890
  }
891
+ /** 브랜드 메시지 템플릿. 알림톡 템플릿(`templates`)과 **다른 표**다. */
892
+ get brandTemplates() {
893
+ return new KakaoBrandTemplates(this._client, this._accountId);
894
+ }
844
895
  /**
845
896
  * 채널 연결 시 지정할 업종 카테고리 목록.
846
897
  *
@@ -883,12 +934,13 @@ var MessageSchema = z.object({
883
934
  }).passthrough();
884
935
 
885
936
  // src/resources/messages.ts
937
+ var templateBlock = (p) => p && stripNotGiven({ ChannelId: p.channelId, TemplateId: p.templateId, Variables: p.variables });
886
938
  var Messages = class extends APIResource {
887
939
  /**
888
- * 문자(SMS/LMS/MMS) 또는 카카오 알림톡을 발송합니다.
940
+ * 문자(SMS/LMS/MMS) 또는 카카오 알림톡·브랜드 메시지를 발송합니다.
889
941
  *
890
- * 둘은 배타적입니다 — `kakao` 를 실으면 알림톡이고, 이때 `body`·`subject`·`mediaUrl`
891
- * 실을 수 없습니다(본문은 검수된 템플릿이 정합니다).
942
+ * 셋은 배타적입니다 — `kakao` 를 실으면 알림톡, `brand` 를 실으면 브랜드 메시지이고,
943
+ * 이때 `body`·`subject`·`mediaUrl` 은 실을 수 없습니다(본문은 템플릿이 정합니다).
892
944
  *
893
945
  * ```ts
894
946
  * // 문자
@@ -901,6 +953,14 @@ var Messages = class extends APIResource {
901
953
  * kakao: { channelId, templateId, variables: { 고객명: '홍길동' } },
902
954
  * fallback: { body: '주문이 접수되었습니다.' },
903
955
  * });
956
+ *
957
+ * // 브랜드 메시지 — 채널을 추가한 친구에게 나가는 광고성 메시지
958
+ * // ⚠️ 야간 제한과 대체발송 없음 — 제약은 `BrandMessageCreateParams` 참고.
959
+ * await client.messages.create({
960
+ * to: '010…',
961
+ * from: '070…',
962
+ * brand: { channelId, templateId, variables: { 고객명: '홍길동' } },
963
+ * });
904
964
  * ```
905
965
  */
906
966
  async create(params, options = {}) {
@@ -913,11 +973,8 @@ var Messages = class extends APIResource {
913
973
  MediaUrl: params.mediaUrl,
914
974
  IdempotencyKey: params.idempotencyKey,
915
975
  // 중첩 객체는 손으로 조립한다 — stripNotGiven 은 한 겹만 훑는다.
916
- Kakao: params.kakao && stripNotGiven({
917
- ChannelId: params.kakao.channelId,
918
- TemplateId: params.kakao.templateId,
919
- Variables: params.kakao.variables
920
- }),
976
+ Kakao: templateBlock(params.kakao),
977
+ Brand: templateBlock(params.brand),
921
978
  Fallback: params.fallback && stripNotGiven({
922
979
  Type: params.fallback.type,
923
980
  Subject: params.fallback.subject,
@@ -1325,6 +1382,6 @@ var ClawOps = class extends APIClient {
1325
1382
  // src/client-default.ts
1326
1383
  var client_default_default = ClawOps;
1327
1384
 
1328
- export { APIClient, AccountContext, AssignmentLinks, BlockedRecipients, Calls, ClawOps, Kakao, KakaoChannels, KakaoTemplates, Messages, Numbers, Page, Recordings, SipCredentials, SipEndpoints, WebhookLogs, WebhookVerificationError, Webhooks, client_default_default as default };
1385
+ export { APIClient, AccountContext, AssignmentLinks, BlockedRecipients, Calls, ClawOps, Kakao, KakaoBrandTemplates, KakaoChannels, KakaoTemplates, Messages, Numbers, Page, Recordings, SipCredentials, SipEndpoints, WebhookLogs, WebhookVerificationError, Webhooks, client_default_default as default };
1329
1386
  //# sourceMappingURL=index.js.map
1330
1387
  //# sourceMappingURL=index.js.map