@ekanos/cli 0.12.0 → 0.14.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.
- package/README.md +25 -8
- package/dist/agents-api.d.ts +11 -2
- package/dist/agents-api.js +39 -3
- package/dist/agents-api.js.map +1 -1
- package/dist/apps-api.d.ts +3 -2
- package/dist/apps-api.js +3 -7
- package/dist/apps-api.js.map +1 -1
- package/dist/auth/ekanos-api.d.ts +16 -2
- package/dist/auth/ekanos-api.js +101 -15
- package/dist/auth/ekanos-api.js.map +1 -1
- package/dist/auth/host-trust.d.ts +46 -0
- package/dist/auth/host-trust.js +79 -0
- package/dist/auth/host-trust.js.map +1 -0
- package/dist/auth/session.d.ts +10 -1
- package/dist/auth/session.js +28 -28
- package/dist/auth/session.js.map +1 -1
- package/dist/commands/agents-edit.d.ts +6 -2
- package/dist/commands/agents-edit.js +57 -26
- package/dist/commands/agents-edit.js.map +1 -1
- package/dist/commands/agents.d.ts +13 -2
- package/dist/commands/agents.js +148 -36
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/apps.d.ts +15 -4
- package/dist/commands/apps.js +133 -51
- package/dist/commands/apps.js.map +1 -1
- package/dist/commands/catalog.js +7 -6
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/knowledge.d.ts +56 -0
- package/dist/commands/knowledge.js +456 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/login.d.ts +4 -0
- package/dist/commands/login.js +30 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +9 -1
- package/dist/commands/logout.js +56 -7
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/publish.js +3 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/reviewers.d.ts +2 -0
- package/dist/commands/reviewers.js +7 -3
- package/dist/commands/reviewers.js.map +1 -1
- package/dist/commands/routes.d.ts +2 -0
- package/dist/commands/routes.js +42 -9
- package/dist/commands/routes.js.map +1 -1
- package/dist/commands/runs.d.ts +13 -2
- package/dist/commands/runs.js +96 -15
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/scope-notice.d.ts +21 -0
- package/dist/commands/scope-notice.js +35 -0
- package/dist/commands/scope-notice.js.map +1 -0
- package/dist/commands/skills.d.ts +7 -1
- package/dist/commands/skills.js +80 -24
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/sources.d.ts +4 -0
- package/dist/commands/sources.js +233 -5
- package/dist/commands/sources.js.map +1 -1
- package/dist/commands/status.js +5 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/team-agent-readiness.d.ts +59 -0
- package/dist/commands/team-agent-readiness.js +341 -0
- package/dist/commands/team-agent-readiness.js.map +1 -0
- package/dist/commands/team-agents-agents.d.ts +24 -3
- package/dist/commands/team-agents-agents.js +336 -35
- package/dist/commands/team-agents-agents.js.map +1 -1
- package/dist/commands/team-agents-mcp.js +32 -3
- package/dist/commands/team-agents-mcp.js.map +1 -1
- package/dist/commands/team-agents-triggers.js +230 -54
- package/dist/commands/team-agents-triggers.js.map +1 -1
- package/dist/commands/team-agents.d.ts +3 -1
- package/dist/commands/team-agents.js +27 -7
- package/dist/commands/team-agents.js.map +1 -1
- package/dist/commands/teams-channel-install.d.ts +24 -0
- package/dist/commands/teams-channel-install.js +94 -0
- package/dist/commands/teams-channel-install.js.map +1 -0
- package/dist/commands/teams-connect.d.ts +66 -0
- package/dist/commands/teams-connect.js +397 -0
- package/dist/commands/teams-connect.js.map +1 -0
- package/dist/commands/teams-events.d.ts +12 -0
- package/dist/commands/teams-events.js +138 -0
- package/dist/commands/teams-events.js.map +1 -0
- package/dist/commands/teams-onboard.d.ts +16 -5
- package/dist/commands/teams-onboard.js +61 -36
- package/dist/commands/teams-onboard.js.map +1 -1
- package/dist/commands/teams-overview.d.ts +11 -0
- package/dist/commands/teams-overview.js +160 -0
- package/dist/commands/teams-overview.js.map +1 -0
- package/dist/commands/teams-scope.d.ts +10 -0
- package/dist/commands/teams-scope.js +109 -0
- package/dist/commands/teams-scope.js.map +1 -0
- package/dist/commands/teams.d.ts +64 -7
- package/dist/commands/teams.js +254 -60
- package/dist/commands/teams.js.map +1 -1
- package/dist/commands/upgrade.js +12 -2
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/use.js +2 -2
- package/dist/commands/use.js.map +1 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/connections-api.js +1 -1
- package/dist/connections-api.js.map +1 -1
- package/dist/delegate.js +11 -4
- package/dist/delegate.js.map +1 -1
- package/dist/harness-scaffold.js +12 -0
- package/dist/harness-scaffold.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +724 -152
- package/dist/index.js.map +1 -1
- package/dist/knowledge-api.d.ts +175 -0
- package/dist/knowledge-api.js +169 -0
- package/dist/knowledge-api.js.map +1 -0
- package/dist/open-url.d.ts +16 -0
- package/dist/open-url.js +73 -0
- package/dist/open-url.js.map +1 -0
- package/dist/parse-argv.d.ts +2 -0
- package/dist/parse-argv.js.map +1 -1
- package/dist/publish-api.d.ts +2 -1
- package/dist/publish-api.js +4 -3
- package/dist/publish-api.js.map +1 -1
- package/dist/pull-write.d.ts +27 -0
- package/dist/pull-write.js +60 -0
- package/dist/pull-write.js.map +1 -0
- package/dist/routes-api.d.ts +3 -0
- package/dist/routes-api.js +9 -4
- package/dist/routes-api.js.map +1 -1
- package/dist/runs-api.d.ts +7 -1
- package/dist/runs-api.js +21 -6
- package/dist/runs-api.js.map +1 -1
- package/dist/safe-fs.d.ts +2 -0
- package/dist/safe-fs.js +12 -6
- package/dist/safe-fs.js.map +1 -1
- package/dist/secret-file.d.ts +17 -0
- package/dist/secret-file.js +69 -0
- package/dist/secret-file.js.map +1 -0
- package/dist/skills-api.d.ts +10 -2
- package/dist/skills-api.js +37 -2
- package/dist/skills-api.js.map +1 -1
- package/dist/source-products-api.d.ts +63 -0
- package/dist/source-products-api.js +123 -0
- package/dist/source-products-api.js.map +1 -0
- package/dist/source-target.js +2 -1
- package/dist/source-target.js.map +1 -1
- package/dist/sources-api.d.ts +2 -1
- package/dist/sources-api.js +3 -2
- package/dist/sources-api.js.map +1 -1
- package/dist/team-connect-api.d.ts +286 -0
- package/dist/team-connect-api.js +107 -0
- package/dist/team-connect-api.js.map +1 -0
- package/dist/teams-api.d.ts +42 -1
- package/dist/teams-api.js +98 -20
- package/dist/teams-api.js.map +1 -1
- package/dist/toolchain-api.d.ts +9 -0
- package/dist/toolchain-api.js +17 -2
- package/dist/toolchain-api.js.map +1 -1
- package/dist/toolchain-resolve.d.ts +3 -0
- package/dist/toolchain-resolve.js +15 -1
- package/dist/toolchain-resolve.js.map +1 -1
- package/dist/toolchain.d.ts +6 -0
- package/dist/toolchain.js +19 -0
- package/dist/toolchain.js.map +1 -1
- package/dist/update-notice.js +2 -1
- package/dist/update-notice.js.map +1 -1
- package/package.json +2 -2
- package/templates/AGENTS.md.tmpl +6 -1
- package/templates/claude-skill.md.tmpl +5 -0
- package/templates/package.json.tmpl +4 -4
- package/templates/skills/build-agent/SKILL.md +115 -16
- package/templates/skills/build-agent/references/agent-json.md +26 -8
- package/templates/skills/build-agent/references/app-setup.md +2 -1
- package/templates/skills/build-agent/references/rollout.md +27 -4
- package/templates/skills/build-agent/references/set-up-an-integration.md +74 -15
- package/templates/skills/build-agent/references/skills.md +20 -1
- package/templates/skills/build-agent/references/triggers.md +84 -20
- package/templates/skills/build-integration/references/widget-design.md +3 -3
- package/templates/skills/ekanos-platform/SKILL.md +70 -17
- package/templates/skills/polish-widgets/references/patterns.md +2 -2
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type TeamsApiResult } from './teams-api.js';
|
|
3
|
+
/**
|
|
4
|
+
* The CLI's client for connecting a product for a team (`ekanos teams
|
|
5
|
+
* connect`), for the team's Source admin.
|
|
6
|
+
*
|
|
7
|
+
* GET /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>[&as=<email>][&connection=<id>]
|
|
8
|
+
* → { plan }
|
|
9
|
+
* POST /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>
|
|
10
|
+
* { as?, fields?, connection? }
|
|
11
|
+
* → { plan, result: "activated" } fields / no-fields
|
|
12
|
+
* → { plan, result: "consent", authorizeUrl, expiresAt } oauth
|
|
13
|
+
*
|
|
14
|
+
* The plan's `mode`, decided by the host, says how the product is
|
|
15
|
+
* connected. The shapes are read here rather than from
|
|
16
|
+
* `@ekanos/integration-schema`, so this CLI works against a host without a
|
|
17
|
+
* schema release.
|
|
18
|
+
*/
|
|
19
|
+
export declare const TeamConnectPlanSchema: z.ZodObject<{
|
|
20
|
+
source: z.ZodObject<{
|
|
21
|
+
id: z.ZodString;
|
|
22
|
+
slug: z.ZodString;
|
|
23
|
+
name: z.ZodNullable<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
team: z.ZodObject<{
|
|
26
|
+
slug: z.ZodString;
|
|
27
|
+
name: z.ZodString;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
product: z.ZodObject<{
|
|
30
|
+
slug: z.ZodString;
|
|
31
|
+
name: z.ZodString;
|
|
32
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
33
|
+
experience: "experience";
|
|
34
|
+
integration: "integration";
|
|
35
|
+
}>>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
scope: z.ZodEnum<{
|
|
38
|
+
team: "team";
|
|
39
|
+
user: "user";
|
|
40
|
+
}>;
|
|
41
|
+
connectionId: z.ZodOptional<z.ZodString>;
|
|
42
|
+
mode: z.ZodEnum<{
|
|
43
|
+
browser: "browser";
|
|
44
|
+
fields: "fields";
|
|
45
|
+
"no-fields": "no-fields";
|
|
46
|
+
"not-entitled": "not-entitled";
|
|
47
|
+
"not-self-serve": "not-self-serve";
|
|
48
|
+
oauth: "oauth";
|
|
49
|
+
unsupported: "unsupported";
|
|
50
|
+
"works-as-shipped": "works-as-shipped";
|
|
51
|
+
}>;
|
|
52
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
53
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
54
|
+
name: z.ZodString;
|
|
55
|
+
label: z.ZodString;
|
|
56
|
+
description: z.ZodNullable<z.ZodString>;
|
|
57
|
+
sensitive: z.ZodBoolean;
|
|
58
|
+
required: z.ZodBoolean;
|
|
59
|
+
}, z.core.$strip>>;
|
|
60
|
+
teamApp: z.ZodBoolean;
|
|
61
|
+
member: z.ZodNullable<z.ZodObject<{
|
|
62
|
+
userId: z.ZodString;
|
|
63
|
+
email: z.ZodNullable<z.ZodString>;
|
|
64
|
+
isCaller: z.ZodBoolean;
|
|
65
|
+
}, z.core.$strip>>;
|
|
66
|
+
memberProblem: z.ZodNullable<z.ZodString>;
|
|
67
|
+
connected: z.ZodBoolean;
|
|
68
|
+
connectedAt: z.ZodNullable<z.ZodString>;
|
|
69
|
+
connectUrl: z.ZodString;
|
|
70
|
+
productScope: z.ZodOptional<z.ZodObject<{
|
|
71
|
+
state: z.ZodEnum<{
|
|
72
|
+
locked_out: "locked_out";
|
|
73
|
+
scoped: "scoped";
|
|
74
|
+
unscoped: "unscoped";
|
|
75
|
+
}>;
|
|
76
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
77
|
+
hidden: z.ZodBoolean;
|
|
78
|
+
}, z.core.$strip>>;
|
|
79
|
+
}, z.core.$strip>;
|
|
80
|
+
export type TeamConnectPlan = z.infer<typeof TeamConnectPlanSchema>;
|
|
81
|
+
declare const ShowSchema: z.ZodObject<{
|
|
82
|
+
plan: z.ZodObject<{
|
|
83
|
+
source: z.ZodObject<{
|
|
84
|
+
id: z.ZodString;
|
|
85
|
+
slug: z.ZodString;
|
|
86
|
+
name: z.ZodNullable<z.ZodString>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
team: z.ZodObject<{
|
|
89
|
+
slug: z.ZodString;
|
|
90
|
+
name: z.ZodString;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
product: z.ZodObject<{
|
|
93
|
+
slug: z.ZodString;
|
|
94
|
+
name: z.ZodString;
|
|
95
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
96
|
+
experience: "experience";
|
|
97
|
+
integration: "integration";
|
|
98
|
+
}>>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
scope: z.ZodEnum<{
|
|
101
|
+
team: "team";
|
|
102
|
+
user: "user";
|
|
103
|
+
}>;
|
|
104
|
+
connectionId: z.ZodOptional<z.ZodString>;
|
|
105
|
+
mode: z.ZodEnum<{
|
|
106
|
+
browser: "browser";
|
|
107
|
+
fields: "fields";
|
|
108
|
+
"no-fields": "no-fields";
|
|
109
|
+
"not-entitled": "not-entitled";
|
|
110
|
+
"not-self-serve": "not-self-serve";
|
|
111
|
+
oauth: "oauth";
|
|
112
|
+
unsupported: "unsupported";
|
|
113
|
+
"works-as-shipped": "works-as-shipped";
|
|
114
|
+
}>;
|
|
115
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
116
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
117
|
+
name: z.ZodString;
|
|
118
|
+
label: z.ZodString;
|
|
119
|
+
description: z.ZodNullable<z.ZodString>;
|
|
120
|
+
sensitive: z.ZodBoolean;
|
|
121
|
+
required: z.ZodBoolean;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
teamApp: z.ZodBoolean;
|
|
124
|
+
member: z.ZodNullable<z.ZodObject<{
|
|
125
|
+
userId: z.ZodString;
|
|
126
|
+
email: z.ZodNullable<z.ZodString>;
|
|
127
|
+
isCaller: z.ZodBoolean;
|
|
128
|
+
}, z.core.$strip>>;
|
|
129
|
+
memberProblem: z.ZodNullable<z.ZodString>;
|
|
130
|
+
connected: z.ZodBoolean;
|
|
131
|
+
connectedAt: z.ZodNullable<z.ZodString>;
|
|
132
|
+
connectUrl: z.ZodString;
|
|
133
|
+
productScope: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
state: z.ZodEnum<{
|
|
135
|
+
locked_out: "locked_out";
|
|
136
|
+
scoped: "scoped";
|
|
137
|
+
unscoped: "unscoped";
|
|
138
|
+
}>;
|
|
139
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
140
|
+
hidden: z.ZodBoolean;
|
|
141
|
+
}, z.core.$strip>>;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
declare const StartSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
145
|
+
plan: z.ZodObject<{
|
|
146
|
+
source: z.ZodObject<{
|
|
147
|
+
id: z.ZodString;
|
|
148
|
+
slug: z.ZodString;
|
|
149
|
+
name: z.ZodNullable<z.ZodString>;
|
|
150
|
+
}, z.core.$strip>;
|
|
151
|
+
team: z.ZodObject<{
|
|
152
|
+
slug: z.ZodString;
|
|
153
|
+
name: z.ZodString;
|
|
154
|
+
}, z.core.$strip>;
|
|
155
|
+
product: z.ZodObject<{
|
|
156
|
+
slug: z.ZodString;
|
|
157
|
+
name: z.ZodString;
|
|
158
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
159
|
+
experience: "experience";
|
|
160
|
+
integration: "integration";
|
|
161
|
+
}>>;
|
|
162
|
+
}, z.core.$strip>;
|
|
163
|
+
scope: z.ZodEnum<{
|
|
164
|
+
team: "team";
|
|
165
|
+
user: "user";
|
|
166
|
+
}>;
|
|
167
|
+
connectionId: z.ZodOptional<z.ZodString>;
|
|
168
|
+
mode: z.ZodEnum<{
|
|
169
|
+
browser: "browser";
|
|
170
|
+
fields: "fields";
|
|
171
|
+
"no-fields": "no-fields";
|
|
172
|
+
"not-entitled": "not-entitled";
|
|
173
|
+
"not-self-serve": "not-self-serve";
|
|
174
|
+
oauth: "oauth";
|
|
175
|
+
unsupported: "unsupported";
|
|
176
|
+
"works-as-shipped": "works-as-shipped";
|
|
177
|
+
}>;
|
|
178
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
179
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
180
|
+
name: z.ZodString;
|
|
181
|
+
label: z.ZodString;
|
|
182
|
+
description: z.ZodNullable<z.ZodString>;
|
|
183
|
+
sensitive: z.ZodBoolean;
|
|
184
|
+
required: z.ZodBoolean;
|
|
185
|
+
}, z.core.$strip>>;
|
|
186
|
+
teamApp: z.ZodBoolean;
|
|
187
|
+
member: z.ZodNullable<z.ZodObject<{
|
|
188
|
+
userId: z.ZodString;
|
|
189
|
+
email: z.ZodNullable<z.ZodString>;
|
|
190
|
+
isCaller: z.ZodBoolean;
|
|
191
|
+
}, z.core.$strip>>;
|
|
192
|
+
memberProblem: z.ZodNullable<z.ZodString>;
|
|
193
|
+
connected: z.ZodBoolean;
|
|
194
|
+
connectedAt: z.ZodNullable<z.ZodString>;
|
|
195
|
+
connectUrl: z.ZodString;
|
|
196
|
+
productScope: z.ZodOptional<z.ZodObject<{
|
|
197
|
+
state: z.ZodEnum<{
|
|
198
|
+
locked_out: "locked_out";
|
|
199
|
+
scoped: "scoped";
|
|
200
|
+
unscoped: "unscoped";
|
|
201
|
+
}>;
|
|
202
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
203
|
+
hidden: z.ZodBoolean;
|
|
204
|
+
}, z.core.$strip>>;
|
|
205
|
+
}, z.core.$strip>;
|
|
206
|
+
result: z.ZodLiteral<"activated">;
|
|
207
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
208
|
+
plan: z.ZodObject<{
|
|
209
|
+
source: z.ZodObject<{
|
|
210
|
+
id: z.ZodString;
|
|
211
|
+
slug: z.ZodString;
|
|
212
|
+
name: z.ZodNullable<z.ZodString>;
|
|
213
|
+
}, z.core.$strip>;
|
|
214
|
+
team: z.ZodObject<{
|
|
215
|
+
slug: z.ZodString;
|
|
216
|
+
name: z.ZodString;
|
|
217
|
+
}, z.core.$strip>;
|
|
218
|
+
product: z.ZodObject<{
|
|
219
|
+
slug: z.ZodString;
|
|
220
|
+
name: z.ZodString;
|
|
221
|
+
kind: z.ZodNullable<z.ZodEnum<{
|
|
222
|
+
experience: "experience";
|
|
223
|
+
integration: "integration";
|
|
224
|
+
}>>;
|
|
225
|
+
}, z.core.$strip>;
|
|
226
|
+
scope: z.ZodEnum<{
|
|
227
|
+
team: "team";
|
|
228
|
+
user: "user";
|
|
229
|
+
}>;
|
|
230
|
+
connectionId: z.ZodOptional<z.ZodString>;
|
|
231
|
+
mode: z.ZodEnum<{
|
|
232
|
+
browser: "browser";
|
|
233
|
+
fields: "fields";
|
|
234
|
+
"no-fields": "no-fields";
|
|
235
|
+
"not-entitled": "not-entitled";
|
|
236
|
+
"not-self-serve": "not-self-serve";
|
|
237
|
+
oauth: "oauth";
|
|
238
|
+
unsupported: "unsupported";
|
|
239
|
+
"works-as-shipped": "works-as-shipped";
|
|
240
|
+
}>;
|
|
241
|
+
reason: z.ZodNullable<z.ZodString>;
|
|
242
|
+
fields: z.ZodArray<z.ZodObject<{
|
|
243
|
+
name: z.ZodString;
|
|
244
|
+
label: z.ZodString;
|
|
245
|
+
description: z.ZodNullable<z.ZodString>;
|
|
246
|
+
sensitive: z.ZodBoolean;
|
|
247
|
+
required: z.ZodBoolean;
|
|
248
|
+
}, z.core.$strip>>;
|
|
249
|
+
teamApp: z.ZodBoolean;
|
|
250
|
+
member: z.ZodNullable<z.ZodObject<{
|
|
251
|
+
userId: z.ZodString;
|
|
252
|
+
email: z.ZodNullable<z.ZodString>;
|
|
253
|
+
isCaller: z.ZodBoolean;
|
|
254
|
+
}, z.core.$strip>>;
|
|
255
|
+
memberProblem: z.ZodNullable<z.ZodString>;
|
|
256
|
+
connected: z.ZodBoolean;
|
|
257
|
+
connectedAt: z.ZodNullable<z.ZodString>;
|
|
258
|
+
connectUrl: z.ZodString;
|
|
259
|
+
productScope: z.ZodOptional<z.ZodObject<{
|
|
260
|
+
state: z.ZodEnum<{
|
|
261
|
+
locked_out: "locked_out";
|
|
262
|
+
scoped: "scoped";
|
|
263
|
+
unscoped: "unscoped";
|
|
264
|
+
}>;
|
|
265
|
+
scopes: z.ZodArray<z.ZodString>;
|
|
266
|
+
hidden: z.ZodBoolean;
|
|
267
|
+
}, z.core.$strip>>;
|
|
268
|
+
}, z.core.$strip>;
|
|
269
|
+
result: z.ZodLiteral<"consent">;
|
|
270
|
+
authorizeUrl: z.ZodString;
|
|
271
|
+
expiresAt: z.ZodString;
|
|
272
|
+
}, z.core.$strip>], "result">;
|
|
273
|
+
export type TeamConnectStart = z.infer<typeof StartSchema>;
|
|
274
|
+
interface Target {
|
|
275
|
+
source: string;
|
|
276
|
+
team: string;
|
|
277
|
+
product: string;
|
|
278
|
+
/** A named OAuth connection (`agent`); the main one when absent. */
|
|
279
|
+
connection?: string;
|
|
280
|
+
}
|
|
281
|
+
export declare function showTeamConnect(host: string, accessToken: string, target: Target, asEmail?: string): Promise<TeamsApiResult<z.infer<typeof ShowSchema>>>;
|
|
282
|
+
export declare function startTeamConnect(host: string, accessToken: string, target: Target, body: {
|
|
283
|
+
as?: string;
|
|
284
|
+
fields?: Record<string, string>;
|
|
285
|
+
}): Promise<TeamsApiResult<TeamConnectStart>>;
|
|
286
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { call } from './teams-api.js';
|
|
3
|
+
/**
|
|
4
|
+
* The CLI's client for connecting a product for a team (`ekanos teams
|
|
5
|
+
* connect`), for the team's Source admin.
|
|
6
|
+
*
|
|
7
|
+
* GET /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>[&as=<email>][&connection=<id>]
|
|
8
|
+
* → { plan }
|
|
9
|
+
* POST /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>
|
|
10
|
+
* { as?, fields?, connection? }
|
|
11
|
+
* → { plan, result: "activated" } fields / no-fields
|
|
12
|
+
* → { plan, result: "consent", authorizeUrl, expiresAt } oauth
|
|
13
|
+
*
|
|
14
|
+
* The plan's `mode`, decided by the host, says how the product is
|
|
15
|
+
* connected. The shapes are read here rather than from
|
|
16
|
+
* `@ekanos/integration-schema`, so this CLI works against a host without a
|
|
17
|
+
* schema release.
|
|
18
|
+
*/
|
|
19
|
+
export const TeamConnectPlanSchema = z.object({
|
|
20
|
+
source: z.object({
|
|
21
|
+
id: z.string(),
|
|
22
|
+
slug: z.string(),
|
|
23
|
+
name: z.string().nullable(),
|
|
24
|
+
}),
|
|
25
|
+
team: z.object({ slug: z.string(), name: z.string() }),
|
|
26
|
+
product: z.object({
|
|
27
|
+
slug: z.string(),
|
|
28
|
+
name: z.string(),
|
|
29
|
+
kind: z.enum(['experience', 'integration']).nullable(),
|
|
30
|
+
}),
|
|
31
|
+
scope: z.enum(['team', 'user']),
|
|
32
|
+
/** The OAuth connection the plan is for; absent from an older host (`default`). */
|
|
33
|
+
connectionId: z.string().optional(),
|
|
34
|
+
mode: z.enum([
|
|
35
|
+
'unsupported',
|
|
36
|
+
'not-entitled',
|
|
37
|
+
'not-self-serve',
|
|
38
|
+
'works-as-shipped',
|
|
39
|
+
'oauth',
|
|
40
|
+
'fields',
|
|
41
|
+
'no-fields',
|
|
42
|
+
'browser',
|
|
43
|
+
]),
|
|
44
|
+
reason: z.string().nullable(),
|
|
45
|
+
fields: z.array(z.object({
|
|
46
|
+
name: z.string(),
|
|
47
|
+
label: z.string(),
|
|
48
|
+
description: z.string().nullable(),
|
|
49
|
+
sensitive: z.boolean(),
|
|
50
|
+
required: z.boolean(),
|
|
51
|
+
})),
|
|
52
|
+
teamApp: z.boolean(),
|
|
53
|
+
member: z
|
|
54
|
+
.object({
|
|
55
|
+
userId: z.string(),
|
|
56
|
+
email: z.string().nullable(),
|
|
57
|
+
isCaller: z.boolean(),
|
|
58
|
+
})
|
|
59
|
+
.nullable(),
|
|
60
|
+
memberProblem: z.string().nullable(),
|
|
61
|
+
connected: z.boolean(),
|
|
62
|
+
connectedAt: z.string().nullable(),
|
|
63
|
+
connectUrl: z.string(),
|
|
64
|
+
/**
|
|
65
|
+
* Whether the team's product scopes hide the product from it in the app.
|
|
66
|
+
* Absent from an older host.
|
|
67
|
+
*/
|
|
68
|
+
productScope: z
|
|
69
|
+
.object({
|
|
70
|
+
state: z.enum(['unscoped', 'scoped', 'locked_out']),
|
|
71
|
+
scopes: z.array(z.string()),
|
|
72
|
+
hidden: z.boolean(),
|
|
73
|
+
})
|
|
74
|
+
.optional(),
|
|
75
|
+
});
|
|
76
|
+
const ShowSchema = z.object({ plan: TeamConnectPlanSchema });
|
|
77
|
+
const StartSchema = z.discriminatedUnion('result', [
|
|
78
|
+
z.object({ plan: TeamConnectPlanSchema, result: z.literal('activated') }),
|
|
79
|
+
z.object({
|
|
80
|
+
plan: TeamConnectPlanSchema,
|
|
81
|
+
result: z.literal('consent'),
|
|
82
|
+
authorizeUrl: z.string(),
|
|
83
|
+
expiresAt: z.string(),
|
|
84
|
+
}),
|
|
85
|
+
]);
|
|
86
|
+
function connectPath(target) {
|
|
87
|
+
return `/api/partner/teams/${encodeURIComponent(target.team)}/integrations/${encodeURIComponent(target.product)}/connect`;
|
|
88
|
+
}
|
|
89
|
+
export function showTeamConnect(host, accessToken, target, asEmail) {
|
|
90
|
+
// `call` puts `source` in the query; the rest ride in the path's own query.
|
|
91
|
+
const query = new URLSearchParams(Object.assign(Object.assign({}, (asEmail ? { as: asEmail } : {})), (target.connection ? { connection: target.connection } : {}))).toString();
|
|
92
|
+
const path = query ? `${connectPath(target)}?${query}` : connectPath(target);
|
|
93
|
+
return call(host, accessToken, ShowSchema, {
|
|
94
|
+
method: 'GET',
|
|
95
|
+
path,
|
|
96
|
+
source: target.source,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export function startTeamConnect(host, accessToken, target, body) {
|
|
100
|
+
return call(host, accessToken, StartSchema, {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
path: connectPath(target),
|
|
103
|
+
source: target.source,
|
|
104
|
+
body: target.connection ? Object.assign(Object.assign({}, body), { connection: target.connection }) : body,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=team-connect-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-connect-api.js","sourceRoot":"","sources":["../src/team-connect-api.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\n\nimport { type TeamsApiResult, call } from './teams-api';\n\n/**\n * The CLI's client for connecting a product for a team (`ekanos teams\n * connect`), for the team's Source admin.\n *\n * GET /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>[&as=<email>][&connection=<id>]\n * → { plan }\n * POST /api/partner/teams/<team>/integrations/<product>/connect?source=<slug>\n * { as?, fields?, connection? }\n * → { plan, result: \"activated\" } fields / no-fields\n * → { plan, result: \"consent\", authorizeUrl, expiresAt } oauth\n *\n * The plan's `mode`, decided by the host, says how the product is\n * connected. The shapes are read here rather than from\n * `@ekanos/integration-schema`, so this CLI works against a host without a\n * schema release.\n */\n\nexport const TeamConnectPlanSchema = z.object({\n source: z.object({\n id: z.string(),\n slug: z.string(),\n name: z.string().nullable(),\n }),\n team: z.object({ slug: z.string(), name: z.string() }),\n product: z.object({\n slug: z.string(),\n name: z.string(),\n kind: z.enum(['experience', 'integration']).nullable(),\n }),\n scope: z.enum(['team', 'user']),\n /** The OAuth connection the plan is for; absent from an older host (`default`). */\n connectionId: z.string().optional(),\n mode: z.enum([\n 'unsupported',\n 'not-entitled',\n 'not-self-serve',\n 'works-as-shipped',\n 'oauth',\n 'fields',\n 'no-fields',\n 'browser',\n ]),\n reason: z.string().nullable(),\n fields: z.array(\n z.object({\n name: z.string(),\n label: z.string(),\n description: z.string().nullable(),\n sensitive: z.boolean(),\n required: z.boolean(),\n }),\n ),\n teamApp: z.boolean(),\n member: z\n .object({\n userId: z.string(),\n email: z.string().nullable(),\n isCaller: z.boolean(),\n })\n .nullable(),\n memberProblem: z.string().nullable(),\n connected: z.boolean(),\n connectedAt: z.string().nullable(),\n connectUrl: z.string(),\n /**\n * Whether the team's product scopes hide the product from it in the app.\n * Absent from an older host.\n */\n productScope: z\n .object({\n state: z.enum(['unscoped', 'scoped', 'locked_out']),\n scopes: z.array(z.string()),\n hidden: z.boolean(),\n })\n .optional(),\n});\nexport type TeamConnectPlan = z.infer<typeof TeamConnectPlanSchema>;\n\nconst ShowSchema = z.object({ plan: TeamConnectPlanSchema });\nconst StartSchema = z.discriminatedUnion('result', [\n z.object({ plan: TeamConnectPlanSchema, result: z.literal('activated') }),\n z.object({\n plan: TeamConnectPlanSchema,\n result: z.literal('consent'),\n authorizeUrl: z.string(),\n expiresAt: z.string(),\n }),\n]);\nexport type TeamConnectStart = z.infer<typeof StartSchema>;\n\ninterface Target {\n source: string;\n team: string;\n product: string;\n /** A named OAuth connection (`agent`); the main one when absent. */\n connection?: string;\n}\n\nfunction connectPath(target: Target): string {\n return `/api/partner/teams/${encodeURIComponent(target.team)}/integrations/${encodeURIComponent(target.product)}/connect`;\n}\n\nexport function showTeamConnect(\n host: string,\n accessToken: string,\n target: Target,\n asEmail?: string,\n): Promise<TeamsApiResult<z.infer<typeof ShowSchema>>> {\n // `call` puts `source` in the query; the rest ride in the path's own query.\n const query = new URLSearchParams({\n ...(asEmail ? { as: asEmail } : {}),\n ...(target.connection ? { connection: target.connection } : {}),\n }).toString();\n const path = query ? `${connectPath(target)}?${query}` : connectPath(target);\n return call(host, accessToken, ShowSchema, {\n method: 'GET',\n path,\n source: target.source,\n });\n}\n\nexport function startTeamConnect(\n host: string,\n accessToken: string,\n target: Target,\n body: { as?: string; fields?: Record<string, string> },\n): Promise<TeamsApiResult<TeamConnectStart>> {\n return call(host, accessToken, StartSchema, {\n method: 'POST',\n path: connectPath(target),\n source: target.source,\n body: target.connection ? { ...body, connection: target.connection } : body,\n });\n}\n"]}
|
package/dist/teams-api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type TeamAppSetResult, type TeamCreateRequest, type TeamCreateResult, type TeamMemberChangeResult, type TeamMemberInviteResult, type TeamMemberList, type TeamRoles, type TeamIntegrationStatus, type TeamList, type TeamWebhookMintResult } from '@ekanos/integration-schema';
|
|
1
|
+
import { type ProductScopeList, type ProductScopeProductChange, type TeamScopes, type TeamScopesSetResult, type TeamAppSetResult, type TeamCreateRequest, type TeamCreateResult, type TeamDisconnectResult, type TeamMemberChangeResult, type TeamMemberInviteResult, type TeamMemberList, type TeamRenameResult, type TeamRoles, type TeamIntegrationStatus, type TeamIntegrationEventList, type TeamList, type TeamWebhookMintResult } from '@ekanos/integration-schema';
|
|
2
2
|
import type { z } from 'zod';
|
|
3
3
|
/**
|
|
4
4
|
* The CLI's client for a Source's teams and their integration setup — the
|
|
@@ -9,12 +9,21 @@ import type { z } from 'zod';
|
|
|
9
9
|
* PUT …/integrations/<product>/app?source=<slug> { connectionId?, fields }
|
|
10
10
|
* → TeamAppSetResult
|
|
11
11
|
* POST …/integrations/<product>/webhooks/<id>?source=<slug> → TeamWebhookMintResult
|
|
12
|
+
* DELETE /api/partner/teams/<team>/integrations/<product>?source=<slug> → TeamDisconnectResult
|
|
12
13
|
* POST /api/partner/teams?source=<slug> { name, slug?, ownerEmail? } → TeamCreateResult
|
|
14
|
+
* PATCH /api/partner/teams/<team>?source=<slug> { name } → TeamRenameResult
|
|
13
15
|
* GET /api/partner/teams/<team>/members?source=<slug> → TeamMemberList
|
|
14
16
|
* POST …/<team>/members?source=<slug> { email, role } → TeamMemberInviteResult
|
|
15
17
|
* PATCH …/<team>/members/<email>?source=<slug> { role } → TeamMemberChangeResult
|
|
16
18
|
* DELETE …/<team>/members/<email>?source=<slug> → TeamMemberChangeResult
|
|
17
19
|
* GET /api/partner/teams/<team>/roles?source=<slug> → TeamRoles
|
|
20
|
+
* GET /api/partner/teams/<team>/events?source=<slug>[&product=<slug>]
|
|
21
|
+
* [&since=<iso>][&limit=<n>] → TeamIntegrationEventList
|
|
22
|
+
* GET /api/partner/scopes?source=<slug> → ProductScopeList
|
|
23
|
+
* PUT | DELETE /api/partner/scopes/<scope>/products/<product>?source=<slug>
|
|
24
|
+
* → ProductScopeProductChange
|
|
25
|
+
* GET /api/partner/teams/<team>/scopes?source=<slug> → TeamScopes
|
|
26
|
+
* PUT /api/partner/teams/<team>/scopes?source=<slug> { scopes } → TeamScopesSetResult
|
|
18
27
|
*
|
|
19
28
|
* → 401 / 3xx refresh once and retry
|
|
20
29
|
* → 403 { code: "SOURCE_ADMIN_REQUIRED" | "MFA_REQUIRED" | "FORBIDDEN" }
|
|
@@ -44,13 +53,23 @@ export declare function setTeamApp(host: string, accessToken: string, target: {
|
|
|
44
53
|
}, body: {
|
|
45
54
|
connectionId?: string;
|
|
46
55
|
fields: Record<string, string>;
|
|
56
|
+
clear?: string[];
|
|
47
57
|
}): Promise<TeamsApiResult<TeamAppSetResult>>;
|
|
48
58
|
export declare function mintTeamWebhook(host: string, accessToken: string, target: {
|
|
49
59
|
source: string;
|
|
50
60
|
team: string;
|
|
51
61
|
product: string;
|
|
52
62
|
}, webhookId: string): Promise<TeamsApiResult<TeamWebhookMintResult>>;
|
|
63
|
+
export declare function disconnectTeamIntegration(host: string, accessToken: string, target: {
|
|
64
|
+
source: string;
|
|
65
|
+
team: string;
|
|
66
|
+
product: string;
|
|
67
|
+
}): Promise<TeamsApiResult<TeamDisconnectResult>>;
|
|
53
68
|
export declare function createTeam(host: string, accessToken: string, source: string, body: TeamCreateRequest): Promise<TeamsApiResult<TeamCreateResult>>;
|
|
69
|
+
export declare function renameTeam(host: string, accessToken: string, target: {
|
|
70
|
+
source: string;
|
|
71
|
+
team: string;
|
|
72
|
+
}, name: string): Promise<TeamsApiResult<TeamRenameResult>>;
|
|
54
73
|
export declare function listTeamMembers(host: string, accessToken: string, target: {
|
|
55
74
|
source: string;
|
|
56
75
|
team: string;
|
|
@@ -72,10 +91,32 @@ export declare function removeTeamMember(host: string, accessToken: string, targ
|
|
|
72
91
|
team: string;
|
|
73
92
|
email: string;
|
|
74
93
|
}): Promise<TeamsApiResult<TeamMemberChangeResult>>;
|
|
94
|
+
export declare function listProductScopes(host: string, accessToken: string, source: string): Promise<TeamsApiResult<ProductScopeList>>;
|
|
95
|
+
export declare function setScopeProduct(host: string, accessToken: string, target: {
|
|
96
|
+
source: string;
|
|
97
|
+
scope: string;
|
|
98
|
+
product: string;
|
|
99
|
+
}, included: boolean): Promise<TeamsApiResult<ProductScopeProductChange>>;
|
|
100
|
+
export declare function showTeamScopes(host: string, accessToken: string, target: {
|
|
101
|
+
source: string;
|
|
102
|
+
team: string;
|
|
103
|
+
}): Promise<TeamsApiResult<TeamScopes>>;
|
|
104
|
+
export declare function setTeamScopes(host: string, accessToken: string, target: {
|
|
105
|
+
source: string;
|
|
106
|
+
team: string;
|
|
107
|
+
}, scopes: string[]): Promise<TeamsApiResult<TeamScopesSetResult>>;
|
|
75
108
|
export declare function listTeamRoles(host: string, accessToken: string, target: {
|
|
76
109
|
source: string;
|
|
77
110
|
team: string;
|
|
78
111
|
}): Promise<TeamsApiResult<TeamRoles>>;
|
|
112
|
+
export declare function listTeamEvents(host: string, accessToken: string, target: {
|
|
113
|
+
source: string;
|
|
114
|
+
team: string;
|
|
115
|
+
}, filters: {
|
|
116
|
+
product?: string;
|
|
117
|
+
since?: string;
|
|
118
|
+
limit?: number;
|
|
119
|
+
}): Promise<TeamsApiResult<TeamIntegrationEventList>>;
|
|
79
120
|
/** One partner teams call; shared by the team-agent clients (`team-agents-api.ts`). */
|
|
80
121
|
export declare function call<T>(host: string, accessToken: string, schema: z.ZodType<T>, init: {
|
|
81
122
|
method: 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE';
|