@indexnetwork/protocol 10.1.0-rc.449.1 → 10.1.1-rc.451.1
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/CHANGELOG.md
CHANGED
|
@@ -67,6 +67,8 @@ pin a supported release, use `latest`.
|
|
|
67
67
|
`SynthesisResult` types. Minor bump: additive surface only.
|
|
68
68
|
|
|
69
69
|
### Changed
|
|
70
|
+
- Add a fail-closed isolated provider-free test gate (10.1.1). Tooling-only
|
|
71
|
+
safety foundation; no runtime or public API behavior changes.
|
|
70
72
|
- Share capability classification metadata between the existing architecture
|
|
71
73
|
boundary gate and the protocol atlas generator; allowed dependency directions
|
|
72
74
|
are unchanged.
|
package/dist/chat/chat.prompt.js
CHANGED
|
@@ -124,7 +124,7 @@ ${ctx.hasName ? ` - Call \`create_user_context()\` with no arguments to look t
|
|
|
124
124
|
${ctx.contactsEnabled ? `5. **Connect Gmail**
|
|
125
125
|
- Call \`import_gmail_contacts()\` immediately to obtain the auth URL
|
|
126
126
|
- If not connected (tool returns \`requiresAuth: true\` + \`authUrl\`): present the message below with the button embedded, then WAIT for the user's response:
|
|
127
|
-
"Let
|
|
127
|
+
"Let me start by discovering latent opportunities inside your network.
|
|
128
128
|
Connect your Google account so I can learn from your Gmail and Google Contacts — the people you already know, the conversations you've had, and where alignment may already exist. I never reach out or share anything without your approval.
|
|
129
129
|
[Connect Gmail](authUrl)"
|
|
130
130
|
- The button is how the user says "yes" — clicking it opens OAuth in a new window. When they complete it the app automatically continues — call \`import_gmail_contacts()\` again to finish the import, then proceed to step 5.5
|
|
@@ -145,7 +145,7 @@ ${focusedNetworkId(ctx) ? `6. **Community discovery (skipped — already in scop
|
|
|
145
145
|
- Call \`read_networks()\` to get available public networks (returned in \`publicNetworks\` array)
|
|
146
146
|
- **If \`publicNetworks\` is missing/empty or the response carries \`scopeRestriction.isScoped: true\`, skip the panel entirely and proceed directly to step 7. Do NOT write the "communities you might find relevant" intro when there is nothing to offer.**
|
|
147
147
|
- **Do NOT list communities in text.** The UI renders an interactive card panel automatically.
|
|
148
|
-
- First write the intro text: "Here are some communities you might find relevant — pick any you'd like to join, or skip and
|
|
148
|
+
- First write the intro text: "Here are some communities you might find relevant — pick any you'd like to join, or skip and I'll continue."
|
|
149
149
|
- Then immediately output this block. If \`orderedNetworkIds\` was returned by \`read_networks()\`, include those IDs; otherwise use an empty object:
|
|
150
150
|
\`\`\`networks_panel
|
|
151
151
|
{"orderedNetworkIds": ["<paste exact UUIDs from orderedNetworkIds array>"]}
|
|
@@ -167,7 +167,7 @@ ${focusedNetworkId(ctx) ? `6. **Community discovery (skipped — already in scop
|
|
|
167
167
|
8. **Wrap up** (must happen in the same response as step 7)
|
|
168
168
|
- Call \`complete_onboarding()\` — this is REQUIRED and marks onboarding as finished. It will fail unless the profile is confirmed and the first active signal exists.
|
|
169
169
|
- Close with: "You're all set. Your signals are matched in the background, and you can review persisted opportunities on your home page as they become available."
|
|
170
|
-
- Offer next actions as a natural question (not buttons): "What do you want to do first?
|
|
170
|
+
- Offer next actions as a natural question (not buttons): "What do you want to do first? I can refine your signals, explore who's in your network, or look into someone specific."
|
|
171
171
|
|
|
172
172
|
### CRITICAL: Profile Confirmation Handling
|
|
173
173
|
When the user says "yes", "looks good", "that's right", "correct", or any affirmation after you show them their profile:
|
|
@@ -178,7 +178,7 @@ When the user says "yes", "looks good", "that's right", "correct", or any affirm
|
|
|
178
178
|
### Onboarding Rules
|
|
179
179
|
- If user already introduced themselves, do NOT redundantly ask for name confirmation — acknowledge and proceed
|
|
180
180
|
- Do NOT skip the profile confirmation step — always ask "Does that sound right?" and wait
|
|
181
|
-
- If the user tries to do something else mid-onboarding, gently redirect: "Let
|
|
181
|
+
- If the user tries to do something else mid-onboarding, gently redirect: "Let me finish setting you up first, then I can dive into that."
|
|
182
182
|
- Keep your tone warm and welcoming — this is their first impression
|
|
183
183
|
`;
|
|
184
184
|
}
|
|
@@ -54,11 +54,11 @@ export function assessConsultationEligibility(input) {
|
|
|
54
54
|
export function consultationPromptFor(reason) {
|
|
55
55
|
switch (reason) {
|
|
56
56
|
case "consequential_disclosure_permission":
|
|
57
|
-
return { disclosureSubject: "your permission", draftQuestion: "May
|
|
57
|
+
return { disclosureSubject: "your permission", draftQuestion: "May I share the information needed to explore this collaboration?" };
|
|
58
58
|
case "repeated_non_convergence":
|
|
59
|
-
return { disclosureSubject: "your priorities", draftQuestion: "Which trade-off matters most as
|
|
59
|
+
return { disclosureSubject: "your priorities", draftQuestion: "Which trade-off matters most as I decide how to proceed?" };
|
|
60
60
|
case "insufficient_commitment_authority":
|
|
61
|
-
return { disclosureSubject: "your decision authority", draftQuestion: "What commitments may
|
|
61
|
+
return { disclosureSubject: "your decision authority", draftQuestion: "What commitments may I make on your behalf?" };
|
|
62
62
|
case "unresolved_owner_constraint":
|
|
63
63
|
return { disclosureSubject: "your preferences", draftQuestion: "What outcome would you prefer?" };
|
|
64
64
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@indexnetwork/protocol",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.1-rc.451.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -20,8 +20,9 @@
|
|
|
20
20
|
"build": "rm -rf dist && tsc",
|
|
21
21
|
"build:package": "rm -rf dist && tsc --project tsconfig.package.json",
|
|
22
22
|
"dev": "tsc --watch",
|
|
23
|
-
"test": "bun test",
|
|
24
|
-
"test:isolated": "bun scripts/test.ts",
|
|
23
|
+
"test": "bun test scripts/tests/test-runner.spec.ts && bun scripts/test.ts",
|
|
24
|
+
"test:isolated": "bun test scripts/tests/test-runner.spec.ts && bun scripts/test.ts",
|
|
25
|
+
"test:shared": "bun test",
|
|
25
26
|
"test:architecture": "bun test src/architecture/tests scripts/architecture/tests",
|
|
26
27
|
"architecture:exports": "bun scripts/architecture/export-inventory.ts",
|
|
27
28
|
"architecture:exports:update": "bun scripts/architecture/export-inventory.ts --write",
|