@sellable/install 0.1.146 → 0.1.147
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/bin/sellable-install.mjs +19 -10
- package/package.json +1 -1
- package/skill-templates/create-campaign.md +33 -24
package/bin/sellable-install.mjs
CHANGED
|
@@ -811,14 +811,18 @@ copy.
|
|
|
811
811
|
## Codex Watch Link Handoff
|
|
812
812
|
|
|
813
813
|
When a campaign tool returns \`watchUrl\`, treat it as a user-opened app link, not
|
|
814
|
-
as permission to drive the browser. A valid handoff link must be
|
|
815
|
-
|
|
816
|
-
|
|
814
|
+
as permission to drive the browser. A valid first handoff link must be the exact
|
|
815
|
+
\`create_campaign.watchUrl\` value: a direct
|
|
816
|
+
\`/campaign-builder/{campaignId}?mode=claude|codex\` URL with \`workspaceId\` and
|
|
817
|
+
\`token\` query parameters for auto-login. \`create_campaign.watchUrl\`,
|
|
817
818
|
\`create_campaign({ campaignId }).watchUrl\`, and \`get_campaign.watchUrl\` are all
|
|
818
|
-
acceptable only when they return that direct campaign-builder shape.
|
|
819
|
+
acceptable only when they return that direct campaign-builder shape. Never
|
|
820
|
+
derive, shorten, reconstruct, or print a bare \`/campaign-builder/{campaignId}\`
|
|
821
|
+
URL.
|
|
819
822
|
|
|
820
823
|
Never call browser-opening tools, shell \`open\`, Computer Use, or in-app browser
|
|
821
|
-
automation just because a watch link exists. Print the
|
|
824
|
+
automation just because a watch link exists. Print the first watch link exactly
|
|
825
|
+
once, directly before the brief approval question, in this shape:
|
|
822
826
|
|
|
823
827
|
\`\`\`text
|
|
824
828
|
Campaign shell is ready. We'll keep building the campaign in this chat.
|
|
@@ -835,6 +839,9 @@ the link lands on auth, 404, permission, blank, or a visible error state, recove
|
|
|
835
839
|
a fresh watch link once with \`create_campaign({ campaignId })\` or \`get_campaign\`
|
|
836
840
|
and print that link. Do not claim the browser was opened, inspected, or
|
|
837
841
|
synchronized.
|
|
842
|
+
Do not print another \`Watch link:\` line during source/provider selection or
|
|
843
|
+
normal approval turns unless the user explicitly asks for the link or you are
|
|
844
|
+
recovering a missing/broken URL.
|
|
838
845
|
|
|
839
846
|
After every \`update_campaign({ campaignId, currentStep })\`, use
|
|
840
847
|
\`get_campaign_navigation_state\` when available as a compact orientation check:
|
|
@@ -1011,13 +1018,15 @@ recommendation; you can replace it with your current offer."
|
|
|
1011
1018
|
Before the identity gate, use this customer-facing shape:
|
|
1012
1019
|
|
|
1013
1020
|
\`\`\`text
|
|
1014
|
-
|
|
1021
|
+
You're in {workspace}.
|
|
1015
1022
|
|
|
1016
|
-
|
|
1017
|
-
context to recommend a target, offer, proof, and lead source, then you can
|
|
1018
|
-
correct anything stale before I build from it.
|
|
1023
|
+
Excited to help you launch your LinkedIn outbound campaign.
|
|
1019
1024
|
|
|
1020
|
-
|
|
1025
|
+
We're at setup: first I'll use your LinkedIn profile to understand the company,
|
|
1026
|
+
then I'll draft the campaign brief, help choose where to find buyers, review
|
|
1027
|
+
messages, and wait for final launch approval.
|
|
1028
|
+
|
|
1029
|
+
What's your LinkedIn profile URL or handle?
|
|
1021
1030
|
\`\`\`
|
|
1022
1031
|
|
|
1023
1032
|
Do not silently ask Codex intake or approval questions as plain chat when
|
package/package.json
CHANGED
|
@@ -306,14 +306,18 @@ copy.
|
|
|
306
306
|
## Codex Watch Link Handoff
|
|
307
307
|
|
|
308
308
|
When a campaign tool returns `watchUrl`, treat it as a user-opened app link, not
|
|
309
|
-
as permission to drive the browser. A valid handoff link must be
|
|
310
|
-
|
|
311
|
-
|
|
309
|
+
as permission to drive the browser. A valid first handoff link must be the exact
|
|
310
|
+
`create_campaign.watchUrl` value: a direct
|
|
311
|
+
`/campaign-builder/{campaignId}?mode=claude|codex` URL with `workspaceId` and
|
|
312
|
+
`token` query parameters for auto-login. `create_campaign.watchUrl`,
|
|
312
313
|
`create_campaign({ campaignId }).watchUrl`, and `get_campaign.watchUrl` are all
|
|
313
|
-
acceptable only when they return that direct campaign-builder shape.
|
|
314
|
+
acceptable only when they return that direct campaign-builder shape. Never
|
|
315
|
+
derive, shorten, reconstruct, or print a bare `/campaign-builder/{campaignId}`
|
|
316
|
+
URL.
|
|
314
317
|
|
|
315
318
|
Never call browser-opening tools, shell `open`, Computer Use, or in-app browser
|
|
316
|
-
automation just because a watch link exists. Print the
|
|
319
|
+
automation just because a watch link exists. Print the first watch link exactly
|
|
320
|
+
once, directly before the brief approval question, in this shape:
|
|
317
321
|
|
|
318
322
|
```text
|
|
319
323
|
Campaign shell is ready. We'll keep building the campaign in this chat.
|
|
@@ -335,6 +339,9 @@ Never print a placeholder watch link such as "Open campaign" or "link will
|
|
|
335
339
|
update once the shell is created." If the shell is not created yet, call
|
|
336
340
|
`create_campaign` first. If `create_campaign` does not return `watchUrl`, stop
|
|
337
341
|
and surface the missing watch-link error before lead sourcing.
|
|
342
|
+
Do not print another `Watch link:` line during source/provider selection or
|
|
343
|
+
normal approval turns unless the user explicitly asks for the link or you are
|
|
344
|
+
recovering a missing/broken URL.
|
|
338
345
|
|
|
339
346
|
After every `update_campaign({ campaignId, currentStep })`, use
|
|
340
347
|
`get_campaign_navigation_state` when available as a compact orientation check:
|
|
@@ -556,14 +563,15 @@ the run. Treat YOLO as `interactionMode: "autonomous"` plus an intake policy:
|
|
|
556
563
|
Before the identity gate, use this customer-facing shape:
|
|
557
564
|
|
|
558
565
|
```text
|
|
559
|
-
|
|
566
|
+
You're in {workspace}.
|
|
560
567
|
|
|
561
|
-
|
|
562
|
-
context to recommend a target, offer, proof, and lead source, then you can
|
|
563
|
-
correct anything stale before I build from it.
|
|
568
|
+
Excited to help you launch your LinkedIn outbound campaign.
|
|
564
569
|
|
|
565
|
-
|
|
566
|
-
|
|
570
|
+
We're at setup: first I'll use your LinkedIn profile to understand the company,
|
|
571
|
+
then I'll draft the campaign brief, help choose where to find buyers, review
|
|
572
|
+
messages, and wait for final launch approval.
|
|
573
|
+
|
|
574
|
+
What's your LinkedIn profile URL or handle?
|
|
567
575
|
```
|
|
568
576
|
|
|
569
577
|
Do not silently ask Codex intake or approval questions as plain chat when
|
|
@@ -688,26 +696,27 @@ updates.
|
|
|
688
696
|
been written. Your IMMEDIATE next visible message branches on
|
|
689
697
|
`isReturningUser` from the tool result:
|
|
690
698
|
|
|
691
|
-
- If `isReturningUser === true`,
|
|
692
|
-
|
|
693
|
-
(substituting `activeWorkspaceName` exactly):
|
|
699
|
+
- If `isReturningUser === true`, use `activeWorkspaceName` when present,
|
|
700
|
+
otherwise `activeWorkspaceId`, as `{workspaceLabel}`:
|
|
694
701
|
|
|
695
702
|
```text
|
|
696
|
-
You're in
|
|
697
|
-
```
|
|
703
|
+
You're in {workspaceLabel}.
|
|
698
704
|
|
|
699
|
-
|
|
705
|
+
Excited to help you launch your LinkedIn outbound campaign. We're at setup: first I'll use your LinkedIn profile to understand the company, then I'll draft the campaign brief, help choose where to find buyers, review messages, and wait for final launch approval.
|
|
700
706
|
|
|
701
|
-
|
|
707
|
+
What's your LinkedIn profile URL or handle?
|
|
708
|
+
```
|
|
702
709
|
|
|
703
|
-
- If `isReturningUser === false`,
|
|
704
|
-
|
|
710
|
+
- If `isReturningUser === false`, use `activeWorkspaceName` when present,
|
|
711
|
+
otherwise `activeWorkspaceId`, as `{workspaceLabel}`:
|
|
705
712
|
|
|
706
|
-
|
|
707
|
-
|
|
713
|
+
```text
|
|
714
|
+
You're set up in {workspaceLabel}.
|
|
715
|
+
|
|
716
|
+
Excited to help you launch your LinkedIn outbound campaign. We're at setup: first I'll use your LinkedIn profile to understand the company, then I'll draft the campaign brief, help choose where to find buyers, review messages, and wait for final launch approval.
|
|
708
717
|
|
|
709
|
-
|
|
710
|
-
|
|
718
|
+
What's your LinkedIn profile URL or handle?
|
|
719
|
+
```
|
|
711
720
|
|
|
712
721
|
No other lines. No "all set", no "signed in", no other acknowledgement.
|
|
713
722
|
|