ethos-cli 0.7.1 → 0.7.3
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/dist/bin/ethos.js +2 -0
- package/dist/bin/ethos.js.map +1 -1
- package/dist/commands/agents.js +1 -0
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/flows.js +6 -6
- package/dist/commands/flows.js.map +1 -1
- package/dist/commands/gifting.d.ts +2 -0
- package/dist/commands/gifting.js +136 -0
- package/dist/commands/gifting.js.map +1 -0
- package/dist/commands/hooks.d.ts +4 -0
- package/dist/commands/hooks.js +111 -24
- package/dist/commands/hooks.js.map +1 -1
- package/dist/commands/lists.js +31 -406
- package/dist/commands/lists.js.map +1 -1
- package/dist/commands/tables.d.ts +3 -0
- package/dist/commands/tables.js +43 -13
- package/dist/commands/tables.js.map +1 -1
- package/dist/lib/agent-clients.d.ts +15 -3
- package/dist/lib/agent-clients.js +29 -5
- package/dist/lib/agent-clients.js.map +1 -1
- package/dist/lib/command-helpers.d.ts +1 -0
- package/dist/lib/command-helpers.js +7 -0
- package/dist/lib/command-helpers.js.map +1 -1
- package/dist/lib/find-people-flow.d.ts +5 -2
- package/dist/lib/find-people-flow.js +11 -4
- package/dist/lib/find-people-flow.js.map +1 -1
- package/dist/lib/table-types.d.ts +4 -2
- package/package.json +1 -1
- package/skills/launch-gifting-campaign.md +310 -0
package/dist/bin/ethos.js
CHANGED
|
@@ -7,6 +7,7 @@ import { registerAgents } from "../commands/agents.js";
|
|
|
7
7
|
import { registerAuth } from "../commands/auth.js";
|
|
8
8
|
import { registerCampaigns } from "../commands/campaigns.js";
|
|
9
9
|
import { registerFlows } from "../commands/flows.js";
|
|
10
|
+
import { registerGifting } from "../commands/gifting.js";
|
|
10
11
|
import { registerHooks } from "../commands/hooks.js";
|
|
11
12
|
import { registerLists } from "../commands/lists.js";
|
|
12
13
|
import { registerSkills } from "../commands/skills.js";
|
|
@@ -24,6 +25,7 @@ export function createEthosProgram() {
|
|
|
24
25
|
registerAgents(program);
|
|
25
26
|
registerCampaigns(program);
|
|
26
27
|
registerFlows(program);
|
|
28
|
+
registerGifting(program);
|
|
27
29
|
registerHooks(program);
|
|
28
30
|
registerLists(program);
|
|
29
31
|
registerSkills(program);
|
package/dist/bin/ethos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethos.js","sourceRoot":"","sources":["../../src/bin/ethos.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAwB,CAAC;AAExF,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,gBAAgB,CACd,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,8CAA8C,CAAC;SAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CACxB,CAAC;IAEF,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI;IACtD,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"ethos.js","sourceRoot":"","sources":["../../src/bin/ethos.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAwB,CAAC;AAExF,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,gBAAgB,CACd,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,8CAA8C,CAAC;SAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CACxB,CAAC;IAEF,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,eAAe,CAAC,OAAO,CAAC,CAAC;IACzB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAiB,OAAO,CAAC,IAAI;IACtD,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACzB,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/agents.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkB/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAoB;IAC/C,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;CAClB,CAAC,CAAC;AACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAe;IACtC,YAAY;IACZ,WAAW;IACX,aAAa;IACb,WAAW;IACX,yBAAyB;IACzB,yBAAyB;
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/flows.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsonRequest, withClient } from "../lib/command-helpers.js";
|
|
2
|
-
import {
|
|
2
|
+
import { SUPPORTED_AGENT_FLOWS, isSupportedAgentFlow } from "../lib/agent-clients.js";
|
|
3
3
|
import { EthosApiError } from "../lib/client.js";
|
|
4
|
-
import {
|
|
4
|
+
import { createAgentFlowHandoff } from "../lib/find-people-flow.js";
|
|
5
5
|
import { openInBrowser } from "../lib/open-browser.js";
|
|
6
6
|
import { printResult } from "../lib/output.js";
|
|
7
7
|
export function registerFlows(program) {
|
|
@@ -18,12 +18,12 @@ export function registerFlows(program) {
|
|
|
18
18
|
.option("--return-url <url>", "explicit deep link to use when returning to the agent client")
|
|
19
19
|
.option("--open", "open the upload URL in the default browser after creating the handoff");
|
|
20
20
|
startCommand.action(async (flow) => {
|
|
21
|
-
if (flow
|
|
22
|
-
throw new Error(`Unsupported flow "${flow}". Supported
|
|
21
|
+
if (!isSupportedAgentFlow(flow)) {
|
|
22
|
+
throw new Error(`Unsupported flow "${flow}". Supported flows: ${SUPPORTED_AGENT_FLOWS.join(", ")}.`);
|
|
23
23
|
}
|
|
24
24
|
await withClient(startCommand, async (client, config) => {
|
|
25
25
|
const options = startCommand.opts();
|
|
26
|
-
const result = await
|
|
26
|
+
const result = await createAgentFlowHandoff(client, config, flow, {
|
|
27
27
|
agentClient: options.agentClient,
|
|
28
28
|
agentSurface: options.agentSurface,
|
|
29
29
|
appUrl: options.appUrl,
|
|
@@ -90,7 +90,7 @@ async function fetchHandoffStatus(client, handoffToken, requestTimeoutMs) {
|
|
|
90
90
|
}
|
|
91
91
|
catch (error) {
|
|
92
92
|
if (error instanceof EthosApiError && error.status === 404) {
|
|
93
|
-
throw new EthosApiError("This upload flow expired before the CSV upload completed. Re-run `ethos flows start
|
|
93
|
+
throw new EthosApiError("This upload flow expired before the CSV upload completed. Re-run `ethos flows start <flow>` to start a new one.", error.status, error.body);
|
|
94
94
|
}
|
|
95
95
|
throw error;
|
|
96
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/commands/flows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/commands/flows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { compactObject, jsonRequest, parsePositiveInteger, pathId, withClient } from "../lib/command-helpers.js";
|
|
2
|
+
import { printResult } from "../lib/output.js";
|
|
3
|
+
export function registerGifting(program) {
|
|
4
|
+
const gifting = program.command("gifting").description("Manage gifting catalog options, campaigns, and orders");
|
|
5
|
+
const catalog = gifting.command("catalog").description("Search gift catalog options");
|
|
6
|
+
const catalogSearch = catalog
|
|
7
|
+
.command("search <query>")
|
|
8
|
+
.description("Search stored gift catalog options")
|
|
9
|
+
.option("--limit <count>", "maximum options to return", "5")
|
|
10
|
+
.option("--provider <key>", "catalog provider key");
|
|
11
|
+
catalogSearch.action(async (query) => {
|
|
12
|
+
await withClient(catalogSearch, async (client, config) => {
|
|
13
|
+
const options = catalogSearch.opts();
|
|
14
|
+
const limit = parsePositiveInteger(options.limit, "--limit", 25);
|
|
15
|
+
const params = new URLSearchParams({ query, limit: String(limit) });
|
|
16
|
+
if (options.provider) {
|
|
17
|
+
params.set("provider_key", options.provider);
|
|
18
|
+
}
|
|
19
|
+
const result = await client.request(`/v1/gifting/catalog?${params.toString()}`);
|
|
20
|
+
printResult(config, catalogSearchResult(result));
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
const catalogSyncStatus = catalog
|
|
24
|
+
.command("sync-status <run-id>")
|
|
25
|
+
.description("Show a gift catalog sync run status");
|
|
26
|
+
catalogSyncStatus.action(async (runId) => {
|
|
27
|
+
await withClient(catalogSyncStatus, async (client, config) => {
|
|
28
|
+
const run = await client.request(`/v1/gifting/catalog/sync-runs/${pathId(runId)}`);
|
|
29
|
+
printResult(config, catalogSyncRunResult(run));
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
const campaigns = gifting.command("campaigns").description("Create gifting campaigns");
|
|
33
|
+
const createCampaign = campaigns
|
|
34
|
+
.command("create")
|
|
35
|
+
.description("Create a gifting campaign from a list and catalog option")
|
|
36
|
+
.requiredOption("--name <name>", "campaign name")
|
|
37
|
+
.requiredOption("--list-id <id>", "recipient list id")
|
|
38
|
+
.requiredOption("--gift-catalog-item-id <id>", "selected gift catalog item id")
|
|
39
|
+
.option("--gift-catalog-item-id-variable-key <key>", "custom variable key containing the recipient-specific gift catalog item id")
|
|
40
|
+
.option("--gift-variable-key <key>", "custom variable key containing the recipient-specific gift name")
|
|
41
|
+
.requiredOption("--address-variable-key <key>", "custom variable key containing the shipping address")
|
|
42
|
+
.option("--note-variable-key <key>", "custom variable key containing the personalized note");
|
|
43
|
+
createCampaign.action(async () => {
|
|
44
|
+
await withClient(createCampaign, async (client, config) => {
|
|
45
|
+
const options = createCampaign.opts();
|
|
46
|
+
const detail = await client.request("/v1/gifting/campaigns", jsonRequest("POST", compactObject({
|
|
47
|
+
name: options.name,
|
|
48
|
+
list_id: options.listId,
|
|
49
|
+
gift_catalog_item_id: options.giftCatalogItemId,
|
|
50
|
+
gift_catalog_item_id_variable_key: options.giftCatalogItemIdVariableKey,
|
|
51
|
+
gift_variable_key: options.giftVariableKey,
|
|
52
|
+
address_variable_key: options.addressVariableKey,
|
|
53
|
+
note_variable_key: options.noteVariableKey,
|
|
54
|
+
})));
|
|
55
|
+
printResult(config, giftingCampaignResult(detail));
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
const orders = gifting.command("orders").description("Update gifting orders");
|
|
59
|
+
const updateOrder = orders
|
|
60
|
+
.command("update <order-id>")
|
|
61
|
+
.description("Update a gifting order status or external reference")
|
|
62
|
+
.option("--status <status>", "ready_for_ops, missing_address, ordered, failed, or canceled")
|
|
63
|
+
.option("--external-order-reference <value>", "external order reference")
|
|
64
|
+
.option("--ops-notes <notes>", "ops notes");
|
|
65
|
+
updateOrder.action(async (orderId) => {
|
|
66
|
+
await withClient(updateOrder, async (client, config) => {
|
|
67
|
+
const options = updateOrder.opts();
|
|
68
|
+
const body = compactObject({
|
|
69
|
+
status: options.status,
|
|
70
|
+
external_order_reference: options.externalOrderReference,
|
|
71
|
+
ops_notes: options.opsNotes,
|
|
72
|
+
});
|
|
73
|
+
if (!Object.keys(body).length) {
|
|
74
|
+
throw new Error("Pass at least one order field to update.");
|
|
75
|
+
}
|
|
76
|
+
const order = await client.request(`/v1/gifting/orders/${pathId(orderId)}`, jsonRequest("PATCH", body));
|
|
77
|
+
printResult(config, giftingOrderResult(order));
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function catalogSearchResult(result) {
|
|
82
|
+
const options = result.items.map((item, index) => ({
|
|
83
|
+
rank: index + 1,
|
|
84
|
+
id: item.id,
|
|
85
|
+
provider_key: item.provider_key ?? null,
|
|
86
|
+
provider_item_id: item.provider_item_id ?? null,
|
|
87
|
+
name: item.name,
|
|
88
|
+
merchant_name: item.merchant_name ?? null,
|
|
89
|
+
description: item.description ?? null,
|
|
90
|
+
price: priceLabel(item.price_cents ?? null, item.currency ?? null),
|
|
91
|
+
shipping_time: item.shipping_time ?? null,
|
|
92
|
+
product_url: item.product_url ?? null,
|
|
93
|
+
verification_status: item.verification_status ?? null,
|
|
94
|
+
}));
|
|
95
|
+
return {
|
|
96
|
+
label: `Found ${result.items.length} gift option${result.items.length === 1 ? "" : "s"}`,
|
|
97
|
+
data: {
|
|
98
|
+
items: options,
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function catalogSyncRunResult(run) {
|
|
103
|
+
return {
|
|
104
|
+
label: `Catalog sync ${run.status}`,
|
|
105
|
+
data: {
|
|
106
|
+
...run,
|
|
107
|
+
sync_run_id: run.id,
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function giftingCampaignResult(detail) {
|
|
112
|
+
return {
|
|
113
|
+
label: `Created gifting campaign ${detail.campaign.name}`,
|
|
114
|
+
data: {
|
|
115
|
+
...detail,
|
|
116
|
+
campaign_id: detail.campaign.id,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function giftingOrderResult(order) {
|
|
121
|
+
return {
|
|
122
|
+
label: `Updated gifting order ${order.id}`,
|
|
123
|
+
data: {
|
|
124
|
+
...order,
|
|
125
|
+
order_id: order.id,
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function priceLabel(priceCents, currency) {
|
|
130
|
+
if (priceCents === null) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const symbol = !currency || currency.toUpperCase() === "USD" ? "$" : `${currency.toUpperCase()} `;
|
|
134
|
+
return `${symbol}${(priceCents / 100).toFixed(2)}`;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=gifting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gifting.js","sourceRoot":"","sources":["../../src/commands/gifting.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/hooks.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import { type AgentClientId } from "../lib/agent-clients.js";
|
|
3
|
+
import { type AgentFlowHandoff } from "../lib/find-people-flow.js";
|
|
2
4
|
export declare function registerHooks(program: Command): void;
|
|
3
5
|
export declare function matchesEagerOpenTrigger(prompt: string): boolean;
|
|
6
|
+
export declare function eagerOpenContext(handoff: AgentFlowHandoff, clientId: AgentClientId): string;
|
|
7
|
+
export declare function findBundledBrowserSkillPath(codexHome?: string): string | null;
|
package/dist/commands/hooks.js
CHANGED
|
@@ -1,39 +1,48 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import {
|
|
1
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { FIND_PEOPLE_AT_COMPANIES_FLOW, LAUNCH_GIFTING_CAMPAIGN_FLOW, resolveAgentClientId, } from "../lib/agent-clients.js";
|
|
3
5
|
import { withClient } from "../lib/command-helpers.js";
|
|
4
6
|
import { isJsonMode } from "../lib/config.js";
|
|
5
|
-
import {
|
|
7
|
+
import { createAgentFlowHandoff } from "../lib/find-people-flow.js";
|
|
6
8
|
import { ALL_HOOK_AGENTS, detectHookAgents, installEagerOpenHook, parseHookAgents, uninstallEagerOpenHook, } from "../lib/hooks-installer.js";
|
|
7
9
|
import { openInBrowser } from "../lib/open-browser.js";
|
|
8
10
|
import { printResult } from "../lib/output.js";
|
|
9
|
-
const SKILL = "find-people-at-companies";
|
|
10
11
|
const HOOK_EVENT = "UserPromptSubmit";
|
|
12
|
+
const BROWSER_SKILL_NAME = "browser:control-in-app-browser";
|
|
13
|
+
const BROWSER_SKILL_SUFFIX = join("skills", "control-in-app-browser", "SKILL.md");
|
|
14
|
+
const FLOW_BY_SKILL = {
|
|
15
|
+
[FIND_PEOPLE_AT_COMPANIES_FLOW]: FIND_PEOPLE_AT_COMPANIES_FLOW,
|
|
16
|
+
[LAUNCH_GIFTING_CAMPAIGN_FLOW]: LAUNCH_GIFTING_CAMPAIGN_FLOW,
|
|
17
|
+
};
|
|
18
|
+
const SKILL_LINK_PATTERN = Object.keys(FLOW_BY_SKILL).map(escapeRegExp).join("|");
|
|
11
19
|
// Explicit invocation only: Codex's skill-link shape must appear in the prompt.
|
|
12
20
|
// Mentions in prose, pasted transcripts, and debug discussion should no-op.
|
|
13
|
-
const EAGER_OPEN_TRIGGER =
|
|
21
|
+
const EAGER_OPEN_TRIGGER = new RegExp(String.raw `\[\$(${SKILL_LINK_PATTERN})\]\([^)]*\/(${SKILL_LINK_PATTERN})\/SKILL\.md\)`, "i");
|
|
14
22
|
export function registerHooks(program) {
|
|
15
23
|
const hooks = program
|
|
16
24
|
.command("hooks")
|
|
17
|
-
.description("Manage Ethos agent hooks, such as the
|
|
25
|
+
.description("Manage Ethos agent hooks, such as the CSV upload eager-open UserPromptSubmit hook");
|
|
18
26
|
registerEagerOpen(hooks);
|
|
19
27
|
registerInstall(hooks);
|
|
20
28
|
registerUninstall(hooks);
|
|
21
29
|
}
|
|
22
30
|
export function matchesEagerOpenTrigger(prompt) {
|
|
23
|
-
return
|
|
31
|
+
return matchedEagerOpenFlow(prompt) !== null;
|
|
24
32
|
}
|
|
25
33
|
function registerEagerOpen(hooks) {
|
|
26
34
|
const eagerOpen = hooks
|
|
27
35
|
.command("eager-open")
|
|
28
|
-
.description(`${HOOK_EVENT} hook handler: when
|
|
36
|
+
.description(`${HOOK_EVENT} hook handler: when a CSV upload skill is invoked, create the upload handoff and inject it for the skill to reuse`);
|
|
29
37
|
eagerOpen.action(async () => {
|
|
30
38
|
const prompt = readHookPrompt();
|
|
31
|
-
|
|
32
|
-
|
|
39
|
+
const flow = matchedEagerOpenFlow(prompt);
|
|
40
|
+
if (!flow)
|
|
41
|
+
return; // not an upload skill - leave the prompt untouched
|
|
33
42
|
try {
|
|
34
43
|
await withClient(eagerOpen, async (client, config) => {
|
|
35
44
|
const clientId = resolveAgentClientId("auto");
|
|
36
|
-
const handoff = await
|
|
45
|
+
const handoff = await createAgentFlowHandoff(client, config, flow, { agentClient: clientId });
|
|
37
46
|
// Codex uploads in its in-app Browser, which only the agent can open.
|
|
38
47
|
// Shell clients get the latency win from opening the OS browser here.
|
|
39
48
|
if (clientId !== "codex")
|
|
@@ -42,7 +51,7 @@ function registerEagerOpen(hooks) {
|
|
|
42
51
|
});
|
|
43
52
|
}
|
|
44
53
|
catch (error) {
|
|
45
|
-
emitAdditionalContext(eagerOpenFailureContext(error));
|
|
54
|
+
emitAdditionalContext(eagerOpenFailureContext(flow, error));
|
|
46
55
|
}
|
|
47
56
|
});
|
|
48
57
|
}
|
|
@@ -60,14 +69,28 @@ function readHookPrompt() {
|
|
|
60
69
|
return "";
|
|
61
70
|
}
|
|
62
71
|
}
|
|
63
|
-
function
|
|
72
|
+
function matchedEagerOpenFlow(prompt) {
|
|
73
|
+
const match = prompt.match(EAGER_OPEN_TRIGGER);
|
|
74
|
+
const linkSkill = match?.[1]?.toLowerCase();
|
|
75
|
+
const pathSkill = match?.[2]?.toLowerCase();
|
|
76
|
+
if (!linkSkill || linkSkill !== pathSkill)
|
|
77
|
+
return null;
|
|
78
|
+
return FLOW_BY_SKILL[linkSkill] ?? null;
|
|
79
|
+
}
|
|
80
|
+
function escapeRegExp(value) {
|
|
81
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
82
|
+
}
|
|
83
|
+
export function eagerOpenContext(handoff, clientId) {
|
|
64
84
|
const workspace = handoff.org_name ? ` in workspace "${handoff.org_name}"` : "";
|
|
65
85
|
const browserInstruction = clientId === "codex"
|
|
66
86
|
? `Open upload_url in the Codex in-app Browser now.`
|
|
67
87
|
: `The upload browser is already opening in the OS browser.`;
|
|
68
|
-
|
|
69
|
-
`
|
|
70
|
-
`
|
|
88
|
+
const flowInstruction = handoff.flow === LAUNCH_GIFTING_CAMPAIGN_FLOW
|
|
89
|
+
? `Next: ask the user what type of gift to send, whether to research each recipient, and whether to include personalized notes while they upload, then run \`ethos flows wait ${handoff.handoff_token} --json\` to capture the uploaded table id.`
|
|
90
|
+
: `Next: ask the user for their ICP and buying-signal brief while they upload, then run \`ethos flows wait ${handoff.handoff_token} --json\` to capture the uploaded table id.`;
|
|
91
|
+
const baseContext = [
|
|
92
|
+
`ETHOS_${handoff.flow.toUpperCase().replace(/-/g, "_")}_HANDOFF_READY`,
|
|
93
|
+
`This is the hook-created upload handoff for the current ${handoff.flow} request${workspace}.`,
|
|
71
94
|
`Do not say no hook handoff was injected.`,
|
|
72
95
|
`Do not run \`ethos flows start\` or create another handoff.`,
|
|
73
96
|
`If the user provided a local CLI path, the hook already used the installed hook command for this environment.`,
|
|
@@ -77,18 +100,82 @@ function eagerOpenContext(handoff, clientId) {
|
|
|
77
100
|
`agent_client=${handoff.agent_client}`,
|
|
78
101
|
`org_id=${handoff.org_id}`,
|
|
79
102
|
`org_name=${handoff.org_name}`,
|
|
80
|
-
|
|
103
|
+
flowInstruction,
|
|
81
104
|
].join("\n");
|
|
105
|
+
if (clientId !== "codex")
|
|
106
|
+
return baseContext;
|
|
107
|
+
const browserSkillContext = injectedBrowserSkillContext();
|
|
108
|
+
if (!browserSkillContext)
|
|
109
|
+
return baseContext;
|
|
110
|
+
return `${baseContext}\n\n${browserSkillContext}`;
|
|
82
111
|
}
|
|
83
|
-
function eagerOpenFailureContext(error) {
|
|
112
|
+
function eagerOpenFailureContext(flow, error) {
|
|
84
113
|
const message = error instanceof Error ? error.message : String(error);
|
|
114
|
+
const fallback = `ethos flows start ${flow} --agent-client auto --json`;
|
|
85
115
|
if (/missing api token/i.test(message)) {
|
|
86
|
-
return (`Ethos
|
|
116
|
+
return (`Ethos ${flow}: the eager handoff hook could not create an upload flow because the Ethos CLI is not authenticated. ` +
|
|
87
117
|
`Do NOT run \`ethos flows start\` before logging in; it will fail the same way. ` +
|
|
88
|
-
`Run \`ethos auth login --agent-client auto\`, then use the skill's \`
|
|
118
|
+
`Run \`ethos auth login --agent-client auto\`, then use the skill's \`${fallback}\` fallback for this turn.`);
|
|
119
|
+
}
|
|
120
|
+
return (`Ethos ${flow}: the eager handoff hook could not create an upload flow (${message}). ` +
|
|
121
|
+
`Continue with the skill fallback; if auth is missing, run \`ethos auth login --agent-client auto\` before \`${fallback}\`.`);
|
|
122
|
+
}
|
|
123
|
+
function injectedBrowserSkillContext() {
|
|
124
|
+
const path = findBundledBrowserSkillPath();
|
|
125
|
+
if (!path)
|
|
126
|
+
return null;
|
|
127
|
+
try {
|
|
128
|
+
const skillText = readFileSync(path, "utf8").trim();
|
|
129
|
+
if (!skillText)
|
|
130
|
+
return null;
|
|
131
|
+
return [
|
|
132
|
+
`The following block is the complete local ${BROWSER_SKILL_NAME} skill, injected by the Ethos ${HOOK_EVENT} hook before this turn.`,
|
|
133
|
+
`Use these instructions immediately to open the upload URL above in the Codex in-app Browser.`,
|
|
134
|
+
`Do not read or load ${BROWSER_SKILL_NAME} again unless this injected copy appears missing or truncated.`,
|
|
135
|
+
"",
|
|
136
|
+
`----- BEGIN injected ${BROWSER_SKILL_NAME} SKILL.md (${path}) -----`,
|
|
137
|
+
skillText,
|
|
138
|
+
`----- END injected ${BROWSER_SKILL_NAME} SKILL.md -----`,
|
|
139
|
+
].join("\n");
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export function findBundledBrowserSkillPath(codexHome = process.env.CODEX_HOME || join(homedir(), ".codex")) {
|
|
146
|
+
const browserCacheRoot = join(codexHome, "plugins", "cache", "openai-bundled", "browser");
|
|
147
|
+
let entries;
|
|
148
|
+
try {
|
|
149
|
+
entries = readdirSync(browserCacheRoot, { withFileTypes: true });
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const candidateDirs = entries
|
|
155
|
+
.filter((entry) => entry.isDirectory())
|
|
156
|
+
.map((entry) => entry.name)
|
|
157
|
+
.sort(compareVersionish)
|
|
158
|
+
.reverse();
|
|
159
|
+
for (const versionDir of candidateDirs) {
|
|
160
|
+
const candidate = join(browserCacheRoot, versionDir, BROWSER_SKILL_SUFFIX);
|
|
161
|
+
if (existsSync(candidate))
|
|
162
|
+
return candidate;
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
function compareVersionish(left, right) {
|
|
167
|
+
const leftParts = left.split(".").map((part) => Number.parseInt(part, 10));
|
|
168
|
+
const rightParts = right.split(".").map((part) => Number.parseInt(part, 10));
|
|
169
|
+
const partCount = Math.max(leftParts.length, rightParts.length);
|
|
170
|
+
for (let index = 0; index < partCount; index += 1) {
|
|
171
|
+
const leftPart = leftParts[index] ?? 0;
|
|
172
|
+
const rightPart = rightParts[index] ?? 0;
|
|
173
|
+
if (Number.isNaN(leftPart) || Number.isNaN(rightPart))
|
|
174
|
+
return left.localeCompare(right);
|
|
175
|
+
if (leftPart !== rightPart)
|
|
176
|
+
return leftPart - rightPart;
|
|
89
177
|
}
|
|
90
|
-
return (
|
|
91
|
-
`Continue with the skill fallback; if auth is missing, run \`ethos auth login --agent-client auto\` before \`ethos flows start\`.`);
|
|
178
|
+
return left.localeCompare(right);
|
|
92
179
|
}
|
|
93
180
|
function emitAdditionalContext(additionalContext) {
|
|
94
181
|
process.stdout.write(JSON.stringify({
|
|
@@ -98,7 +185,7 @@ function emitAdditionalContext(additionalContext) {
|
|
|
98
185
|
function registerInstall(hooks) {
|
|
99
186
|
const install = hooks
|
|
100
187
|
.command("install")
|
|
101
|
-
.description("Register the
|
|
188
|
+
.description("Register the CSV upload eager-open UserPromptSubmit hook in your agent config(s)")
|
|
102
189
|
.option("-a, --agents <list>", `comma-separated agents (default: auto-detect). Supported: ${ALL_HOOK_AGENTS.join(", ")}`);
|
|
103
190
|
install.action(async () => {
|
|
104
191
|
const agents = parseHookAgents(install.opts().agents) ?? detectHookAgents();
|
|
@@ -114,7 +201,7 @@ function registerInstall(hooks) {
|
|
|
114
201
|
function registerUninstall(hooks) {
|
|
115
202
|
const uninstall = hooks
|
|
116
203
|
.command("uninstall")
|
|
117
|
-
.description("Remove the
|
|
204
|
+
.description("Remove the CSV upload eager-open hook from your agent config(s)")
|
|
118
205
|
.option("-a, --agents <list>", `comma-separated agents (default: all). Supported: ${ALL_HOOK_AGENTS.join(", ")}`);
|
|
119
206
|
uninstall.action(async () => {
|
|
120
207
|
const agents = parseHookAgents(uninstall.opts().agents);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAGL,6BAA6B,EAC7B,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,EAAE,wBAAwB,EAAE,UAAU,CAAC,CAAC;AAClF,MAAM,aAAa,GAAkC;IACnD,CAAC,6BAA6B,CAAC,EAAE,6BAA6B;IAC9D,CAAC,4BAA4B,CAAC,EAAE,4BAA4B;CAC7D,CAAC;AACF,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClF,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,kBAAkB,GAAG,IAAI,MAAM,CACnC,MAAM,CAAC,GAAG,CAAA,QAAQ,kBAAkB,gBAAgB,kBAAkB,gBAAgB,EACtF,GAAG,CACJ,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mFAAmF,CAAC,CAAC;IAEpG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,SAAS,GAAG,KAAK;SACpB,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,GAAG,UAAU,mHAAmH,CACjI,CAAC;IACJ,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,mDAAmD;QAEtE,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBACnD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9F,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAI,QAAQ,KAAK,OAAO;oBAAE,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC7D,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACrD,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,aAAa,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAyB,EAAE,QAAuB;IACjF,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,kBAAkB,GACtB,QAAQ,KAAK,OAAO;QAClB,CAAC,CAAC,kDAAkD;QACpD,CAAC,CAAC,0DAA0D,CAAC;IACjE,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,KAAK,4BAA4B;QAC3C,CAAC,CAAC,8KAA8K,OAAO,CAAC,aAAa,6CAA6C;QAClP,CAAC,CAAC,2GAA2G,OAAO,CAAC,aAAa,6CAA6C,CAAC;IACpL,MAAM,WAAW,GAAG;QAClB,SAAS,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB;QACtE,2DAA2D,OAAO,CAAC,IAAI,WAAW,SAAS,GAAG;QAC9F,0CAA0C;QAC1C,6DAA6D;QAC7D,+GAA+G;QAC/G,kBAAkB;QAClB,iBAAiB,OAAO,CAAC,aAAa,EAAE;QACxC,cAAc,OAAO,CAAC,UAAU,EAAE;QAClC,gBAAgB,OAAO,CAAC,YAAY,EAAE;QACtC,UAAU,OAAO,CAAC,MAAM,EAAE;QAC1B,YAAY,OAAO,CAAC,QAAQ,EAAE;QAC9B,eAAe;KAChB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC;IAE7C,MAAM,mBAAmB,GAAG,2BAA2B,EAAE,CAAC;IAC1D,IAAI,CAAC,mBAAmB;QAAE,OAAO,WAAW,CAAC;IAC7C,OAAO,GAAG,WAAW,OAAO,mBAAmB,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAmB,EAAE,KAAc;IAClE,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,qBAAqB,IAAI,6BAA6B,CAAC;IACxE,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,CACL,SAAS,IAAI,uGAAuG;YACpH,iFAAiF;YACjF,wEAAwE,QAAQ,4BAA4B,CAC7G,CAAC;IACJ,CAAC;IACD,OAAO,CACL,SAAS,IAAI,6DAA6D,OAAO,KAAK;QACtF,+GAA+G,QAAQ,KAAK,CAC7H,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,MAAM,IAAI,GAAG,2BAA2B,EAAE,CAAC;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO;YACL,6CAA6C,kBAAkB,iCAAiC,UAAU,yBAAyB;YACnI,8FAA8F;YAC9F,uBAAuB,kBAAkB,gEAAgE;YACzG,EAAE;YACF,wBAAwB,kBAAkB,cAAc,IAAI,SAAS;YACrE,SAAS;YACT,sBAAsB,kBAAkB,iBAAiB;SAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC;IAE/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAC1F,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,OAAO;SAC1B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,iBAAiB,CAAC;SACvB,OAAO,EAAE,CAAC;IAEb,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC3E,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAEhE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxF,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,GAAG,SAAS,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,qBAAqB,CAAC,iBAAyB;IACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;QACb,kBAAkB,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE;KACrE,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CACL,qBAAqB,EACrB,6DAA6D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAuB,CAAC,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,gBAAgB,CAAC,OAAO,EAAE;YACxB,KAAK,EAAE,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,iCAAiC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,OAAO,GAAG;gBACzG,CAAC,CAAC,sGAAsG;YAC1G,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,SAAS,GAAG,KAAK;SACpB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CACL,qBAAqB,EACrB,qDAAqD,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;IACJ,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAuB,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,gBAAgB,CAAC,SAAS,EAAE;YAC1B,KAAK,EAAE,OAAO;gBACZ,CAAC,CAAC,oCAAoC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvH,CAAC,CAAC,oBAAoB;YACxB,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB,EAAE,MAAwC;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC"}
|