@amigo-ai/sdk 1.0.0 → 1.1.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 (32) hide show
  1. package/README.md +50 -37
  2. package/dist/index.cjs.map +2 -2
  3. package/dist/index.mjs.map +2 -2
  4. package/dist/platform.cjs +1754 -0
  5. package/dist/platform.cjs.map +7 -0
  6. package/dist/platform.mjs +1723 -0
  7. package/dist/platform.mjs.map +7 -0
  8. package/dist/types/core/utils.d.ts +11 -0
  9. package/dist/types/generated/api-types.d.ts +1 -1
  10. package/dist/types/generated/platform-api-types.d.ts +45240 -0
  11. package/dist/types/platform/core/auth.d.ts +6 -0
  12. package/dist/types/platform/core/branded-types.d.ts +59 -0
  13. package/dist/types/platform/core/openapi-client.d.ts +6 -0
  14. package/dist/types/platform/core/websocket.d.ts +8 -0
  15. package/dist/types/platform/index.d.ts +59 -0
  16. package/dist/types/platform/resources/agents.d.ts +107 -0
  17. package/dist/types/platform/resources/api-keys.d.ts +57 -0
  18. package/dist/types/platform/resources/context-graphs.d.ts +114 -0
  19. package/dist/types/platform/resources/conversations.d.ts +154 -0
  20. package/dist/types/platform/resources/data-sources.d.ts +143 -0
  21. package/dist/types/platform/resources/events.d.ts +253 -0
  22. package/dist/types/platform/resources/fhir.d.ts +186 -0
  23. package/dist/types/platform/resources/integrations.d.ts +114 -0
  24. package/dist/types/platform/resources/phone-numbers.d.ts +170 -0
  25. package/dist/types/platform/resources/services.d.ts +133 -0
  26. package/dist/types/platform/resources/sessions.d.ts +61 -0
  27. package/dist/types/platform/resources/skills.d.ts +169 -0
  28. package/dist/types/platform/resources/workspaces.d.ts +187 -0
  29. package/package.json +15 -11
  30. package/assets/readme/amigo-banner.png +0 -0
  31. package/assets/readme/classic-ts-architecture.png +0 -0
  32. package/assets/readme/classic-ts-architecture.svg +0 -102
@@ -0,0 +1,170 @@
1
+ import type { PlatformFetch } from '../core/openapi-client';
2
+ import type { components, operations } from '../../generated/platform-api-types';
3
+ import type { WorkspaceId, PhoneNumberId } from '../core/branded-types';
4
+ /** Resource for managing phone numbers. */
5
+ export declare class PhoneNumberResource {
6
+ private c;
7
+ private workspaceId;
8
+ constructor(c: PlatformFetch, workspaceId: WorkspaceId);
9
+ /** List phone numbers in the workspace. */
10
+ list(options?: {
11
+ query?: operations['list-phone-numbers']['parameters']['query'];
12
+ }): Promise<{
13
+ continuation_token?: number | null;
14
+ has_more: boolean;
15
+ items: components["schemas"]["PhoneNumberResponse"][];
16
+ total?: number | null;
17
+ }>;
18
+ /** Get a phone number by ID. */
19
+ get(options: {
20
+ phoneNumberId: PhoneNumberId;
21
+ }): Promise<{
22
+ capabilities: string[];
23
+ channel_phone_id?: string | null;
24
+ created_at: string;
25
+ display_name: string;
26
+ forwarding: components["schemas"]["ForwardingConfigResponse"] | null;
27
+ id: string;
28
+ inbound_service_id: string | null;
29
+ notes: string;
30
+ phone_number: string;
31
+ provider: string;
32
+ provider_phone_sid: string | null;
33
+ status: string;
34
+ updated_at: string;
35
+ workspace_id: string;
36
+ }>;
37
+ /** Create a phone number. */
38
+ create(options: {
39
+ body: components['schemas']['CreatePhoneNumberRequest'];
40
+ }): Promise<{
41
+ capabilities: string[];
42
+ channel_phone_id?: string | null;
43
+ created_at: string;
44
+ display_name: string;
45
+ forwarding: components["schemas"]["ForwardingConfigResponse"] | null;
46
+ id: string;
47
+ inbound_service_id: string | null;
48
+ notes: string;
49
+ phone_number: string;
50
+ provider: string;
51
+ provider_phone_sid: string | null;
52
+ status: string;
53
+ updated_at: string;
54
+ workspace_id: string;
55
+ }>;
56
+ /** Update a phone number. */
57
+ update(options: {
58
+ phoneNumberId: PhoneNumberId;
59
+ body: components['schemas']['UpdatePhoneNumberRequest'];
60
+ }): Promise<{
61
+ capabilities: string[];
62
+ channel_phone_id?: string | null;
63
+ created_at: string;
64
+ display_name: string;
65
+ forwarding: components["schemas"]["ForwardingConfigResponse"] | null;
66
+ id: string;
67
+ inbound_service_id: string | null;
68
+ notes: string;
69
+ phone_number: string;
70
+ provider: string;
71
+ provider_phone_sid: string | null;
72
+ status: string;
73
+ updated_at: string;
74
+ workspace_id: string;
75
+ }>;
76
+ /** Delete a phone number. */
77
+ delete(options: {
78
+ phoneNumberId: PhoneNumberId;
79
+ }): Promise<void>;
80
+ /** Set call forwarding for a phone number. */
81
+ setForwarding(options: {
82
+ phoneNumberId: PhoneNumberId;
83
+ body: components['schemas']['ForwardingConfigRequest'];
84
+ }): Promise<{
85
+ capabilities: string[];
86
+ channel_phone_id?: string | null;
87
+ created_at: string;
88
+ display_name: string;
89
+ forwarding: components["schemas"]["ForwardingConfigResponse"] | null;
90
+ id: string;
91
+ inbound_service_id: string | null;
92
+ notes: string;
93
+ phone_number: string;
94
+ provider: string;
95
+ provider_phone_sid: string | null;
96
+ status: string;
97
+ updated_at: string;
98
+ workspace_id: string;
99
+ }>;
100
+ /** Clear call forwarding for a phone number. */
101
+ clearForwarding(options: {
102
+ phoneNumberId: PhoneNumberId;
103
+ }): Promise<void>;
104
+ /** Get the Twilio sub-account for the workspace. */
105
+ getTwilioSubAccount(): Promise<{
106
+ account_sid: string;
107
+ created_at: string;
108
+ environment: string;
109
+ friendly_name: string;
110
+ id: string;
111
+ status?: string;
112
+ twiml_app_sid: string | null;
113
+ updated_at: string;
114
+ workspace_id: string;
115
+ }>;
116
+ /** Provision a Twilio sub-account for the workspace. */
117
+ provisionTwilioSubAccount(): Promise<{
118
+ account_sid: string;
119
+ created_at: string;
120
+ environment: string;
121
+ friendly_name: string;
122
+ id: string;
123
+ status?: string;
124
+ twiml_app_sid: string | null;
125
+ updated_at: string;
126
+ workspace_id: string;
127
+ }>;
128
+ /** Search available phone numbers for purchase. */
129
+ searchAvailable(options?: {
130
+ query?: operations['search-available-phone-numbers']['parameters']['query'];
131
+ }): Promise<{
132
+ numbers: components["schemas"]["AvailableNumber"][];
133
+ }>;
134
+ /** Purchase a phone number. */
135
+ purchase(options: {
136
+ body: components['schemas']['PurchasePhoneNumberRequest'];
137
+ }): Promise<{
138
+ capabilities: ("inbound" | "outbound")[];
139
+ created_at: string;
140
+ display_name: string;
141
+ id: string;
142
+ phone_number: string;
143
+ provider_phone_sid: string;
144
+ status: string;
145
+ workspace_id: string;
146
+ }>;
147
+ /** Release a purchased phone number. */
148
+ release(options: {
149
+ phoneNumberId: PhoneNumberId;
150
+ }): Promise<void>;
151
+ /** Bind a channel-manager phone number to a workspace/service. */
152
+ bind(options: {
153
+ body: components['schemas']['BindChannelPhoneRequest'];
154
+ }): Promise<{
155
+ capabilities: string[];
156
+ channel_phone_id?: string | null;
157
+ created_at: string;
158
+ display_name: string;
159
+ forwarding: components["schemas"]["ForwardingConfigResponse"] | null;
160
+ id: string;
161
+ inbound_service_id: string | null;
162
+ notes: string;
163
+ phone_number: string;
164
+ provider: string;
165
+ provider_phone_sid: string | null;
166
+ status: string;
167
+ updated_at: string;
168
+ workspace_id: string;
169
+ }>;
170
+ }
@@ -0,0 +1,133 @@
1
+ import type { PlatformFetch } from '../core/openapi-client';
2
+ import type { components, operations } from '../../generated/platform-api-types';
3
+ import type { WorkspaceId, PlatformServiceId } from '../core/branded-types';
4
+ /** Resource for managing services. */
5
+ export declare class PlatformServiceResource {
6
+ private c;
7
+ private workspaceId;
8
+ constructor(c: PlatformFetch, workspaceId: WorkspaceId);
9
+ /** List services in the workspace. */
10
+ list(options?: {
11
+ query?: operations['list-services']['parameters']['query'];
12
+ }): Promise<{
13
+ continuation_token?: number | null;
14
+ has_more: boolean;
15
+ items: components["schemas"]["ServiceResponse"][];
16
+ total?: number | null;
17
+ }>;
18
+ /** Get a service by ID. */
19
+ get(options: {
20
+ serviceId: PlatformServiceId;
21
+ }): Promise<{
22
+ agent_id: string;
23
+ agent_name?: string | null;
24
+ channel_type?: "voice" | "text" | "scribe";
25
+ context_graph_id: string;
26
+ context_graph_name?: string | null;
27
+ created_at: string;
28
+ description: string;
29
+ environment?: "sandbox" | "production";
30
+ escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
31
+ id: string;
32
+ is_active: boolean;
33
+ is_system?: boolean;
34
+ keyterms: string[];
35
+ name: string;
36
+ persona_id?: string | null;
37
+ persona_name?: string | null;
38
+ safety_filters_enabled?: boolean;
39
+ tags: components["schemas"]["ServiceTag"][];
40
+ tool_capacity: number;
41
+ updated_at: string;
42
+ version_sets: {
43
+ [key: string]: components["schemas"]["VersionSet"];
44
+ };
45
+ voice_config?: components["schemas"]["ServiceVoiceConfig"] | null;
46
+ workspace_id: string;
47
+ }>;
48
+ /** Create a new service. */
49
+ create(options: {
50
+ body: components['schemas']['CreateServiceRequest'];
51
+ }): Promise<{
52
+ agent_id: string;
53
+ agent_name?: string | null;
54
+ channel_type?: "voice" | "text" | "scribe";
55
+ context_graph_id: string;
56
+ context_graph_name?: string | null;
57
+ created_at: string;
58
+ description: string;
59
+ environment?: "sandbox" | "production";
60
+ escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
61
+ id: string;
62
+ is_active: boolean;
63
+ is_system?: boolean;
64
+ keyterms: string[];
65
+ name: string;
66
+ persona_id?: string | null;
67
+ persona_name?: string | null;
68
+ safety_filters_enabled?: boolean;
69
+ tags: components["schemas"]["ServiceTag"][];
70
+ tool_capacity: number;
71
+ updated_at: string;
72
+ version_sets: {
73
+ [key: string]: components["schemas"]["VersionSet"];
74
+ };
75
+ voice_config?: components["schemas"]["ServiceVoiceConfig"] | null;
76
+ workspace_id: string;
77
+ }>;
78
+ /** Update a service. */
79
+ update(options: {
80
+ serviceId: PlatformServiceId;
81
+ body: components['schemas']['UpdateServiceRequest'];
82
+ }): Promise<{
83
+ agent_id: string;
84
+ agent_name?: string | null;
85
+ channel_type?: "voice" | "text" | "scribe";
86
+ context_graph_id: string;
87
+ context_graph_name?: string | null;
88
+ created_at: string;
89
+ description: string;
90
+ environment?: "sandbox" | "production";
91
+ escalation_policy?: components["schemas"]["EscalationPolicy"] | null;
92
+ id: string;
93
+ is_active: boolean;
94
+ is_system?: boolean;
95
+ keyterms: string[];
96
+ name: string;
97
+ persona_id?: string | null;
98
+ persona_name?: string | null;
99
+ safety_filters_enabled?: boolean;
100
+ tags: components["schemas"]["ServiceTag"][];
101
+ tool_capacity: number;
102
+ updated_at: string;
103
+ version_sets: {
104
+ [key: string]: components["schemas"]["VersionSet"];
105
+ };
106
+ voice_config?: components["schemas"]["ServiceVoiceConfig"] | null;
107
+ workspace_id: string;
108
+ }>;
109
+ /** Delete a service. */
110
+ delete(options: {
111
+ serviceId: PlatformServiceId;
112
+ }): Promise<void>;
113
+ /** Upsert a version set for a service. */
114
+ upsertVersionSet(options: {
115
+ serviceId: PlatformServiceId;
116
+ name: string;
117
+ body: components['schemas']['UpsertVersionSetRequest'];
118
+ }): Promise<never>;
119
+ /** Resolve all tools available to a service. */
120
+ resolveTools(options: {
121
+ serviceId: PlatformServiceId;
122
+ query?: operations['resolve-service-tools']['parameters']['query'];
123
+ }): Promise<{
124
+ service_id: string;
125
+ tools: components["schemas"]["ResolvedToolItem"][];
126
+ workspace_id: string;
127
+ }>;
128
+ /** Run one voice turn through a service. */
129
+ voiceTurn(options: {
130
+ serviceId: PlatformServiceId;
131
+ body: components['schemas']['Body_voice-turn'] | FormData;
132
+ }): Promise<{}>;
133
+ }
@@ -0,0 +1,61 @@
1
+ import type { PlatformFetch } from '../core/openapi-client';
2
+ import { type PlatformWebSocketConstructor, type PlatformWebSocketLike } from '../core/websocket';
3
+ import type { components } from '../../generated/platform-api-types';
4
+ import type { CallSid, EntityId, PlatformServiceId, WorkspaceId } from '../core/branded-types';
5
+ export interface PlatformSessionSocketOptions {
6
+ serviceId: PlatformServiceId | string;
7
+ entityId: EntityId | string;
8
+ conversationId?: string;
9
+ toolEvents?: boolean;
10
+ token?: string;
11
+ WebSocket?: PlatformWebSocketConstructor;
12
+ }
13
+ interface PlatformSessionRealtimeConfig {
14
+ apiKey: string;
15
+ webSocketBaseUrl: string;
16
+ WebSocket?: PlatformWebSocketConstructor;
17
+ }
18
+ /** Resource for active sessions, text-session starts, injection, and WebSocket connect. */
19
+ export declare class PlatformSessionResource {
20
+ private c;
21
+ private workspaceId;
22
+ private realtime;
23
+ constructor(c: PlatformFetch, workspaceId: WorkspaceId, realtime: PlatformSessionRealtimeConfig);
24
+ /** List active voice sessions. */
25
+ listActive(): Promise<{
26
+ call_sid: string;
27
+ caller_id: string;
28
+ current_state?: string;
29
+ direction: string;
30
+ duration_seconds: number;
31
+ scenario?: string;
32
+ service_id: string;
33
+ workspace_id: string;
34
+ }[]>;
35
+ /** Start an SMS, WhatsApp, or web text session with an entity. */
36
+ start(options: {
37
+ body: components['schemas']['StartSessionRequest'];
38
+ }): Promise<{
39
+ channel_kind: "sms" | "whatsapp" | "web";
40
+ conversation_id: string;
41
+ created_at: string;
42
+ entity_id: string;
43
+ phone_from?: string | null;
44
+ phone_to?: string | null;
45
+ service_id: string;
46
+ session_status: "created" | "resumed" | "already_active";
47
+ }>;
48
+ /** Inject an external event or operator guidance into an active voice session. */
49
+ inject(options: {
50
+ callSid: CallSid | string;
51
+ body: components['schemas']['InjectRequest'];
52
+ }): Promise<{
53
+ call_sid: string;
54
+ status: "delivered" | "queued_no_subscriber";
55
+ }>;
56
+ /** Build the public platform text-session WebSocket URL. */
57
+ buildTextSessionUrl(options: Omit<PlatformSessionSocketOptions, 'token' | 'WebSocket'>): string;
58
+ /** Connect to the public bidirectional text-session WebSocket. */
59
+ connectTextSession(options: PlatformSessionSocketOptions): PlatformWebSocketLike;
60
+ }
61
+ export {};
@@ -0,0 +1,169 @@
1
+ import type { PlatformFetch } from '../core/openapi-client';
2
+ import type { components, operations } from '../../generated/platform-api-types';
3
+ import type { WorkspaceId, SkillId } from '../core/branded-types';
4
+ /** Resource for managing skills. */
5
+ export declare class SkillResource {
6
+ private c;
7
+ private workspaceId;
8
+ constructor(c: PlatformFetch, workspaceId: WorkspaceId);
9
+ /** List skills in the workspace. */
10
+ list(options?: {
11
+ query?: operations['list-skills']['parameters']['query'];
12
+ }): Promise<{
13
+ continuation_token?: number | null;
14
+ has_more: boolean;
15
+ items: components["schemas"]["SkillResponse"][];
16
+ total?: number | null;
17
+ }>;
18
+ /** Get a skill by ID. */
19
+ get(options: {
20
+ skillId: SkillId;
21
+ }): Promise<{
22
+ approval_required: boolean;
23
+ browser_allowed_domains: string[];
24
+ browser_auth_integration: string | null;
25
+ browser_start_url: string | null;
26
+ checkpoint_enabled: boolean;
27
+ created_at: string;
28
+ delivery: "interrupt" | "queue";
29
+ description: string;
30
+ enable_caching: boolean;
31
+ enable_citations: boolean;
32
+ enabled: boolean;
33
+ execution_tier: "direct" | "orchestrated" | "autonomous" | "browser" | "computer_use";
34
+ id: string;
35
+ input_schema: {
36
+ [key: string]: unknown;
37
+ };
38
+ integration_tools: components["schemas"]["src__models__IntegrationToolRef"][];
39
+ max_agent_turns: number;
40
+ max_input_tokens: number | null;
41
+ max_result_chars: number;
42
+ max_tokens: number;
43
+ model: string;
44
+ name: string;
45
+ result_schema: {
46
+ [key: string]: unknown;
47
+ } | null;
48
+ slug: string;
49
+ static_tools: components["schemas"]["src__models__StaticToolDef"][];
50
+ system_prompt: string;
51
+ thinking_effort: ("low" | "medium" | "high") | null;
52
+ timeout_s: number;
53
+ updated_at: string;
54
+ urgency_keywords: string[];
55
+ use_structured_output: boolean;
56
+ version: number;
57
+ workspace_id: string;
58
+ }>;
59
+ /** Create a new skill. */
60
+ create(options: {
61
+ body: components['schemas']['CreateSkillRequest'];
62
+ }): Promise<{
63
+ approval_required: boolean;
64
+ browser_allowed_domains: string[];
65
+ browser_auth_integration: string | null;
66
+ browser_start_url: string | null;
67
+ checkpoint_enabled: boolean;
68
+ created_at: string;
69
+ delivery: "interrupt" | "queue";
70
+ description: string;
71
+ enable_caching: boolean;
72
+ enable_citations: boolean;
73
+ enabled: boolean;
74
+ execution_tier: "direct" | "orchestrated" | "autonomous" | "browser" | "computer_use";
75
+ id: string;
76
+ input_schema: {
77
+ [key: string]: unknown;
78
+ };
79
+ integration_tools: components["schemas"]["src__models__IntegrationToolRef"][];
80
+ max_agent_turns: number;
81
+ max_input_tokens: number | null;
82
+ max_result_chars: number;
83
+ max_tokens: number;
84
+ model: string;
85
+ name: string;
86
+ result_schema: {
87
+ [key: string]: unknown;
88
+ } | null;
89
+ slug: string;
90
+ static_tools: components["schemas"]["src__models__StaticToolDef"][];
91
+ system_prompt: string;
92
+ thinking_effort: ("low" | "medium" | "high") | null;
93
+ timeout_s: number;
94
+ updated_at: string;
95
+ urgency_keywords: string[];
96
+ use_structured_output: boolean;
97
+ version: number;
98
+ workspace_id: string;
99
+ }>;
100
+ /** Update a skill. */
101
+ update(options: {
102
+ skillId: SkillId;
103
+ body: components['schemas']['UpdateSkillRequest'];
104
+ }): Promise<{
105
+ approval_required: boolean;
106
+ browser_allowed_domains: string[];
107
+ browser_auth_integration: string | null;
108
+ browser_start_url: string | null;
109
+ checkpoint_enabled: boolean;
110
+ created_at: string;
111
+ delivery: "interrupt" | "queue";
112
+ description: string;
113
+ enable_caching: boolean;
114
+ enable_citations: boolean;
115
+ enabled: boolean;
116
+ execution_tier: "direct" | "orchestrated" | "autonomous" | "browser" | "computer_use";
117
+ id: string;
118
+ input_schema: {
119
+ [key: string]: unknown;
120
+ };
121
+ integration_tools: components["schemas"]["src__models__IntegrationToolRef"][];
122
+ max_agent_turns: number;
123
+ max_input_tokens: number | null;
124
+ max_result_chars: number;
125
+ max_tokens: number;
126
+ model: string;
127
+ name: string;
128
+ result_schema: {
129
+ [key: string]: unknown;
130
+ } | null;
131
+ slug: string;
132
+ static_tools: components["schemas"]["src__models__StaticToolDef"][];
133
+ system_prompt: string;
134
+ thinking_effort: ("low" | "medium" | "high") | null;
135
+ timeout_s: number;
136
+ updated_at: string;
137
+ urgency_keywords: string[];
138
+ use_structured_output: boolean;
139
+ version: number;
140
+ workspace_id: string;
141
+ }>;
142
+ /** Delete a skill. */
143
+ delete(options: {
144
+ skillId: SkillId;
145
+ }): Promise<void>;
146
+ /** Test a skill in isolation. */
147
+ test(options: {
148
+ skillId: SkillId;
149
+ body: components['schemas']['TestSkillRequest'];
150
+ }): Promise<{
151
+ cached_tokens: number;
152
+ duration_ms: number;
153
+ error?: string | null;
154
+ input_tokens: number;
155
+ output_tokens: number;
156
+ result: string;
157
+ rounds: number;
158
+ sub_tool_logs: components["schemas"]["SubToolLog"][];
159
+ }>;
160
+ /** Get HSM/service references for a skill. */
161
+ getReferences(options: {
162
+ skillId: SkillId;
163
+ }): Promise<{
164
+ context_graph_references: components["schemas"]["SkillContextGraphReference"][];
165
+ service_references: string[];
166
+ skill_id: string;
167
+ skill_slug: string;
168
+ }>;
169
+ }