ethos-cli 0.7.4 → 0.7.5
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/commands/hooks.js
CHANGED
|
@@ -83,10 +83,10 @@ function escapeRegExp(value) {
|
|
|
83
83
|
export function eagerOpenContext(handoff, clientId) {
|
|
84
84
|
const workspace = handoff.org_name ? ` in workspace "${handoff.org_name}"` : "";
|
|
85
85
|
const browserInstruction = clientId === "codex"
|
|
86
|
-
? `Open upload_url in
|
|
86
|
+
? `Open upload_url in a fresh Codex in-app Browser tab now; do not look for or reuse an existing Ethos tab.`
|
|
87
87
|
: `The upload browser is already opening in the OS browser.`;
|
|
88
88
|
const flowInstruction = handoff.flow === LAUNCH_GIFTING_CAMPAIGN_FLOW
|
|
89
|
-
? `Next:
|
|
89
|
+
? `Next: tell the user to upload a people CSV for gifting, then immediately run \`ethos flows wait ${handoff.handoff_token} --json\` to capture the uploaded table id. Ask gift preferences only after the upload completes and you have inspected the table.`
|
|
90
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
91
|
const baseContext = [
|
|
92
92
|
`ETHOS_${handoff.flow.toUpperCase().replace(/-/g, "_")}_HANDOFF_READY`,
|
|
@@ -130,7 +130,7 @@ function injectedBrowserSkillContext() {
|
|
|
130
130
|
return null;
|
|
131
131
|
return [
|
|
132
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
|
|
133
|
+
`Use these instructions immediately to open the upload URL above in a fresh Codex in-app Browser tab.`,
|
|
134
134
|
`Do not read or load ${BROWSER_SKILL_NAME} again unless this injected copy appears missing or truncated.`,
|
|
135
135
|
"",
|
|
136
136
|
`----- BEGIN injected ${BROWSER_SKILL_NAME} SKILL.md (${path}) -----`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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
|
|
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,0GAA0G;QAC5G,CAAC,CAAC,0DAA0D,CAAC;IACjE,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,KAAK,4BAA4B;QAC3C,CAAC,CAAC,mGAAmG,OAAO,CAAC,aAAa,oIAAoI;QAC9P,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,sGAAsG;YACtG,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"}
|
|
@@ -81,11 +81,8 @@ export function defaultAgentReturnUrl(clientId, opts = {}) {
|
|
|
81
81
|
const flowPrompts = {
|
|
82
82
|
[FIND_PEOPLE_AT_COMPANIES_FLOW]: "Please describe your ICP, any signals that would make them a good fit for your product or service, and where that data may live. You can keep typing while the CSV uploads.",
|
|
83
83
|
[LAUNCH_GIFTING_CAMPAIGN_FLOW]: [
|
|
84
|
-
"Please
|
|
85
|
-
"
|
|
86
|
-
"- Should I pick the same gift for everyone, or should I research each recipient and pick individually?",
|
|
87
|
-
"- Do you want personalized notes included?",
|
|
88
|
-
'For example: "dessert, research each person, include notes" or "cupcakes, one gift for everyone, no notes."',
|
|
84
|
+
"Please upload a CSV of people/recipients. Company lists are not supported for gifting yet.",
|
|
85
|
+
"I'll wait for the upload to finish, then ask the gift setup questions.",
|
|
89
86
|
].join("\n"),
|
|
90
87
|
};
|
|
91
88
|
export function isSupportedAgentFlow(flow) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-clients.js","sourceRoot":"","sources":["../../src/lib/agent-clients.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-clients.js","sourceRoot":"","sources":["../../src/lib/agent-clients.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,8 +6,9 @@ description: Open Ethos in a browser for recipient CSV upload, collect gift pref
|
|
|
6
6
|
# launch-gifting-campaign
|
|
7
7
|
|
|
8
8
|
Use this when the user wants to launch a gifting campaign from a CSV of target
|
|
9
|
-
recipients
|
|
10
|
-
|
|
9
|
+
recipients. The CSV must contain people/recipients; company or account CSVs are
|
|
10
|
+
not supported for this flow yet. Keep CSV upload in the browser-based Ethos
|
|
11
|
+
product flow; do not replace it with `ethos tables import-csv` unless the user
|
|
11
12
|
explicitly asks for a CLI-only fallback.
|
|
12
13
|
|
|
13
14
|
Never name the external catalog/source used for gift options. Say "gift
|
|
@@ -21,6 +22,10 @@ Keep user-facing updates concise and status-oriented. Do not expose internal
|
|
|
21
22
|
skill wording, step numbers, variable names, command names, config JSON, run
|
|
22
23
|
ids, or column ids unless the user explicitly asks for debugging detail.
|
|
23
24
|
|
|
25
|
+
When opening the upload page, clearly tell the user they need to upload a CSV
|
|
26
|
+
of people/recipients. For example: "I'm opening a window for you to upload a
|
|
27
|
+
people CSV. Company lists are not supported for gifting yet."
|
|
28
|
+
|
|
24
29
|
## Required CLI
|
|
25
30
|
|
|
26
31
|
The Ethos CLI (`ethos`) is required. If `ethos` is not installed or not on
|
|
@@ -50,6 +55,7 @@ The gifting agent column must have `config.kind = "gifting_campaign"` and
|
|
|
50
55
|
these output fields:
|
|
51
56
|
|
|
52
57
|
- `gift_catalog_item_id`
|
|
58
|
+
- `product_url`
|
|
53
59
|
- `gift_name`
|
|
54
60
|
- `gift_price`
|
|
55
61
|
- `gift_shipping_time`
|
|
@@ -58,23 +64,39 @@ these output fields:
|
|
|
58
64
|
- `address_status`
|
|
59
65
|
- `personalized_note`
|
|
60
66
|
- `research_summary`
|
|
61
|
-
- `gift_signal`
|
|
62
67
|
- `fallback_search_query`
|
|
63
68
|
- `evidence_url`
|
|
64
|
-
- `confidence:integer`
|
|
69
|
+
- `confidence:integer` (0-100 fit confidence: how well the gift matches the person based on available evidence)
|
|
65
70
|
|
|
66
71
|
The campaign builder imports virtual variables from this structured column:
|
|
67
72
|
`gift_catalog_item_id`, `gift_name`, `gift_price`, `gift_shipping_time`,
|
|
68
73
|
`gift_reasoning`, `shipping_address`, and `personalized_note`. Expansion is
|
|
69
74
|
optional and should not become the source of truth.
|
|
70
75
|
|
|
76
|
+
When the user expands the structured gifting column into visible table columns,
|
|
77
|
+
only these user-facing fields should be surfaced: `gift_name`, `product_url`,
|
|
78
|
+
`gift_price`, `gift_reasoning`, `shipping_address`, `personalized_note`, and
|
|
79
|
+
`shipping_time`. Keep IDs, address status, research summaries, fallback search
|
|
80
|
+
queries, evidence URLs, and confidence scores inside the structured source cell.
|
|
81
|
+
|
|
71
82
|
## Flow
|
|
72
83
|
|
|
73
84
|
1. Use the hook-created upload handoff first. If context contains an injected
|
|
74
85
|
handoff for this flow, reuse its `handoff_token` and `upload_url`; do not
|
|
75
|
-
run `ethos flows start` again. On Codex,
|
|
76
|
-
|
|
77
|
-
|
|
86
|
+
run `ethos flows start` again. On Codex, the hook may also inject the local
|
|
87
|
+
`browser:control-in-app-browser` skill. Use that injected Browser skill
|
|
88
|
+
immediately, and always open `upload_url` in a fresh in-app Browser tab; do
|
|
89
|
+
not inspect, select, or reuse existing Ethos tabs. The tab target should use
|
|
90
|
+
this shape with the actual `upload_url`:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"title": "Ethos",
|
|
95
|
+
"url": "$UPLOAD_URL"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
On shell clients, the hook or `--open` may already open the OS browser.
|
|
78
100
|
|
|
79
101
|
2. Only when no hook handoff was injected, run:
|
|
80
102
|
|
|
@@ -83,35 +105,41 @@ optional and should not become the source of truth.
|
|
|
83
105
|
```
|
|
84
106
|
|
|
85
107
|
Add `--open` only on shell clients. On Codex, do not pass `--open`; open
|
|
86
|
-
`response.upload_url` in
|
|
87
|
-
as `AGENT_CLIENT`; if it is
|
|
88
|
-
`claude-desktop` on Claude.
|
|
108
|
+
`response.upload_url` in a fresh in-app Browser tab without checking
|
|
109
|
+
existing tabs. Save `response.agent_client` as `AGENT_CLIENT`; if it is
|
|
110
|
+
unavailable, use `codex` on Codex and `claude-desktop` on Claude.
|
|
89
111
|
|
|
90
|
-
3. Immediately
|
|
91
|
-
|
|
112
|
+
3. Immediately tell the user to upload a people CSV, then continue to the wait
|
|
113
|
+
command in the next step. Do not ask gift preferences before the upload
|
|
114
|
+
completes. If `response.next_prompt` is available and only asks for the CSV
|
|
115
|
+
upload, ask that exact prompt. Otherwise ask:
|
|
92
116
|
|
|
93
117
|
```text
|
|
94
|
-
Please
|
|
95
|
-
- What type of gift should I send?
|
|
96
|
-
- Should I pick the same gift for everyone, or should I research each recipient and pick individually?
|
|
97
|
-
- Do you want personalized notes included?
|
|
118
|
+
Please upload a CSV of people/recipients. Company lists are not supported for this flow yet.
|
|
98
119
|
|
|
99
|
-
|
|
120
|
+
I'll wait for the upload to finish, then ask the gift setup questions.
|
|
100
121
|
```
|
|
101
122
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
user-specified split), and the note preference as `INCLUDE_NOTES`. If the
|
|
105
|
-
user only gives a gift category, ask the missing mode and note questions
|
|
106
|
-
before creating any agent column.
|
|
107
|
-
|
|
108
|
-
4. Capture the uploaded table:
|
|
123
|
+
4. Capture the uploaded table by waiting on the handoff instead of asking for a
|
|
124
|
+
pasted URL:
|
|
109
125
|
|
|
110
126
|
```sh
|
|
111
127
|
ethos flows wait "$HANDOFF_TOKEN" --json
|
|
112
128
|
```
|
|
113
129
|
|
|
114
|
-
|
|
130
|
+
This polls until the CSV upload completes (up to `--timeout`, default 300s)
|
|
131
|
+
and returns `response.table_id` and `response.org_id`. Save both.
|
|
132
|
+
|
|
133
|
+
- Run it immediately after telling the user to upload the people CSV. Do not
|
|
134
|
+
wait for gift preferences before running this command.
|
|
135
|
+
- If it times out because the user has not uploaded yet, re-run the same
|
|
136
|
+
command. The upload window is about 10 minutes from handoff creation.
|
|
137
|
+
- Only fall back if `flows wait` reports the flow expired or keeps timing
|
|
138
|
+
out: if you can inspect the browser URL, the completed shape is
|
|
139
|
+
`/tables/<TABLE_ID>?agent_flow=launch-gifting-campaign&uploaded=1&...`;
|
|
140
|
+
otherwise ask the user to paste the uploaded table URL and extract the id.
|
|
141
|
+
|
|
142
|
+
Do not inspect the table before `flows wait` returns the uploaded table id.
|
|
115
143
|
|
|
116
144
|
5. Inspect the uploaded table:
|
|
117
145
|
|
|
@@ -125,9 +153,46 @@ optional and should not become the source of truth.
|
|
|
125
153
|
columns when both work and home address columns exist. Avoid optional
|
|
126
154
|
descriptive fields like company keywords, long descriptions, social URLs, or
|
|
127
155
|
previous enrichment evidence unless the user specifically asks to use them.
|
|
128
|
-
If
|
|
129
|
-
|
|
130
|
-
|
|
156
|
+
If the uploaded table is company-only and does not contain people/recipient
|
|
157
|
+
fields, stop and ask the user to upload a people CSV instead; do not
|
|
158
|
+
continue with a company CSV.
|
|
159
|
+
|
|
160
|
+
After confirming the upload contains people, ask the gift setup questions:
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
CSV is in. Please answer these:
|
|
164
|
+
- What type of gift should I send? Good options include desserts/cupcakes, snacks, coffee or tea, regional treats, savory food, wellness gifts, desk gifts, or curated gift boxes.
|
|
165
|
+
- Should I pick the same gift for everyone, or should I research each recipient and pick individually?
|
|
166
|
+
- Do you want personalized notes included?
|
|
167
|
+
|
|
168
|
+
For example: "dessert, research each person, include notes" or "cupcakes, one gift for everyone, no notes."
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Save the gift category as `GIFT_BRIEF`, the selection mode as
|
|
172
|
+
`GIFTING_MODE` (`same_gift`, `personalized_research`, or a deterministic
|
|
173
|
+
user-specified split), and the note preference as `INCLUDE_NOTES`. If the
|
|
174
|
+
user only gives a gift category, ask the missing mode and note questions
|
|
175
|
+
before creating any agent column.
|
|
176
|
+
|
|
177
|
+
If no address column exists, include these address choices in the same
|
|
178
|
+
post-upload question or ask immediately after:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
I don't see a shipping address column. Should I:
|
|
182
|
+
- leave addresses missing for now,
|
|
183
|
+
- use another column/source you point me to, or
|
|
184
|
+
- research likely office addresses from each person's location and company?
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
If the user chooses address research, instruct the gifting setup agent to
|
|
188
|
+
infer a likely business shipping address from public sources using the
|
|
189
|
+
person's location plus the company's likely office address. Prefer a company
|
|
190
|
+
office in the recipient's city/metro; otherwise use a nearby office or
|
|
191
|
+
company HQ only when it is a reasonable business-address guess. Do not infer
|
|
192
|
+
or use home addresses. If the business address is uncertain, leave
|
|
193
|
+
`shipping_address` blank or set `address_status` to a review-needed value
|
|
194
|
+
instead of pretending it is confirmed. Do not create a separate address
|
|
195
|
+
column.
|
|
131
196
|
|
|
132
197
|
6. Search the stored gift catalog. Use a small set for same-gift campaigns and
|
|
133
198
|
a broader set for personalized research:
|
|
@@ -137,10 +202,18 @@ optional and should not become the source of truth.
|
|
|
137
202
|
ethos --org-id "$TABLE_ORG_ID" gifting catalog search "$GIFT_BRIEF" --limit 25 --json
|
|
138
203
|
```
|
|
139
204
|
|
|
140
|
-
Show concise
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
205
|
+
Show concise catalog highlights as a Markdown table with only these
|
|
206
|
+
columns:
|
|
207
|
+
|
|
208
|
+
```text
|
|
209
|
+
Gift | From | Price
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Use `From` for the public merchant, maker, brand, bakery, or regional origin
|
|
213
|
+
when available; leave it blank or use "-" when it is not useful.
|
|
214
|
+
Do not mention the underlying external catalog/source. For same-gift mode,
|
|
215
|
+
ask the user to confirm the selected gift. For personalized research mode,
|
|
216
|
+
use the broader candidate set in the agent instructions. If the user asks for a
|
|
144
217
|
deterministic split, encode the split rule and selected catalog candidates
|
|
145
218
|
in the agent instructions.
|
|
146
219
|
|
|
@@ -177,16 +250,18 @@ optional and should not become the source of truth.
|
|
|
177
250
|
```
|
|
178
251
|
|
|
179
252
|
The instructions must tell the agent to return strict JSON with the output
|
|
180
|
-
fields above. `
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
253
|
+
fields above. `product_url` must be the selected catalog item's product URL
|
|
254
|
+
when available; use an empty string if the selected catalog item has no URL.
|
|
255
|
+
`gift_price` must be the formatted price per gift including currency when
|
|
256
|
+
available, and `gift_shipping_time` must be the shortest accurate shipping
|
|
257
|
+
or delivery estimate available for the selected gift. Use an empty string
|
|
258
|
+
when either value is not available; do not guess. For personalized research,
|
|
259
|
+
tell it to research public LinkedIn and web information, choose the best
|
|
260
|
+
matching catalog candidate, and include concise reasoning with a public link
|
|
261
|
+
when useful. If there is no strong public signal, use the best general
|
|
262
|
+
campaign gift and explain that no specific public preference was found.
|
|
263
|
+
Never mention the external catalog/source in instructions, output, notes, or
|
|
264
|
+
chat.
|
|
190
265
|
|
|
191
266
|
8. Create the structured gifting agent column:
|
|
192
267
|
|
|
@@ -196,6 +271,7 @@ optional and should not become the source of truth.
|
|
|
196
271
|
--agent-id "$GIFTING_AGENT_ID" \
|
|
197
272
|
--prompt "$GIFTING_COLUMN_PROMPT" \
|
|
198
273
|
--output-field "gift_catalog_item_id" \
|
|
274
|
+
--output-field "product_url" \
|
|
199
275
|
--output-field "gift_name" \
|
|
200
276
|
--output-field "gift_price" \
|
|
201
277
|
--output-field "gift_shipping_time" \
|
|
@@ -204,7 +280,6 @@ optional and should not become the source of truth.
|
|
|
204
280
|
--output-field "address_status" \
|
|
205
281
|
--output-field "personalized_note" \
|
|
206
282
|
--output-field "research_summary" \
|
|
207
|
-
--output-field "gift_signal" \
|
|
208
283
|
--output-field "fallback_search_query" \
|
|
209
284
|
--output-field "evidence_url" \
|
|
210
285
|
--output-field "confidence:integer" \
|
|
@@ -297,6 +372,42 @@ optional and should not become the source of truth.
|
|
|
297
372
|
and sends one compact campaign-level ops notification with the campaign
|
|
298
373
|
link, source table link, and ready/missing-address counts.
|
|
299
374
|
|
|
375
|
+
## How to communicate with the user
|
|
376
|
+
|
|
377
|
+
- While you execute the flow, keep communication simple and approachable. Avoid
|
|
378
|
+
explaining UI behavior that should happen automatically when everything is
|
|
379
|
+
working. Do not mention internal Ethos concepts unless explicitly necessary.
|
|
380
|
+
- Do not disclose whether upload context came from hooks, injected context, or
|
|
381
|
+
`ethos flows start`. Treat that as implementation detail. When opening the
|
|
382
|
+
upload page, say something general like: "I'm opening a window for you to
|
|
383
|
+
upload a people CSV for gifting. Company lists are not supported yet."
|
|
384
|
+
- Talk about gift setup in plain terms. Do not narrate internal catalog-search
|
|
385
|
+
strategy, candidate-set sizing, JSON fields, column ids, run ids, or command
|
|
386
|
+
mechanics unless the user asks for debugging detail.
|
|
387
|
+
|
|
388
|
+
For example, instead of
|
|
389
|
+
|
|
390
|
+
"The catalog search is still running; once it returns I’ll use a broader dessert candidate set so the agent can pick the most fitting option per recipient instead of forcing one treat for everyone."
|
|
391
|
+
|
|
392
|
+
say
|
|
393
|
+
|
|
394
|
+
"I'm looking for a good set of gifts for the folks in your list."
|
|
395
|
+
|
|
396
|
+
Or instead of
|
|
397
|
+
|
|
398
|
+
"I’ll create the structured gifting setup agent, attach it to a gifting_campaign column, and run the first three rows."
|
|
399
|
+
|
|
400
|
+
say
|
|
401
|
+
|
|
402
|
+
"I’ll set up the gifting agent and run it on the first 3 people so you can review the gifts before we do the rest."
|
|
403
|
+
|
|
404
|
+
- If you need input from the user, make it very clear by bolding it and maybe
|
|
405
|
+
mentioning it on a new line.
|
|
406
|
+
|
|
407
|
+
E.g.:
|
|
408
|
+
|
|
409
|
+
"**Next, please upload a CSV of people/recipients.** Company lists are not supported for gifting yet."
|
|
410
|
+
|
|
300
411
|
## Notes
|
|
301
412
|
|
|
302
413
|
- If catalog search returns no options, ask the user for a broader gift type
|