npcsh 1.1.14__py3-none-any.whl → 1.1.15__py3-none-any.whl
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.
- npcsh/_state.py +488 -77
- npcsh/mcp_server.py +2 -1
- npcsh/npc.py +84 -32
- npcsh/npc_team/alicanto.npc +22 -1
- npcsh/npc_team/corca.npc +28 -9
- npcsh/npc_team/frederic.npc +25 -4
- npcsh/npc_team/guac.npc +22 -0
- npcsh/npc_team/jinxs/bin/nql.jinx +141 -0
- npcsh/npc_team/jinxs/bin/sync.jinx +230 -0
- {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/bin}/vixynt.jinx +8 -30
- npcsh/npc_team/jinxs/bin/wander.jinx +152 -0
- npcsh/npc_team/jinxs/lib/browser/browser_action.jinx +220 -0
- npcsh/npc_team/jinxs/lib/browser/browser_screenshot.jinx +40 -0
- npcsh/npc_team/jinxs/lib/browser/close_browser.jinx +14 -0
- npcsh/npc_team/jinxs/lib/browser/open_browser.jinx +43 -0
- npcsh/npc_team/jinxs/lib/computer_use/click.jinx +23 -0
- npcsh/npc_team/jinxs/lib/computer_use/key_press.jinx +26 -0
- npcsh/npc_team/jinxs/lib/computer_use/launch_app.jinx +37 -0
- npcsh/npc_team/jinxs/lib/computer_use/screenshot.jinx +23 -0
- npcsh/npc_team/jinxs/lib/computer_use/type_text.jinx +27 -0
- npcsh/npc_team/jinxs/lib/computer_use/wait.jinx +21 -0
- {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/edit_file.jinx +3 -3
- {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/load_file.jinx +1 -1
- npcsh/npc_team/jinxs/lib/core/paste.jinx +134 -0
- {npcsh-1.1.14.data/data/npcsh/npc_team → npcsh/npc_team/jinxs/lib/core}/search.jinx +2 -1
- npcsh/npc_team/jinxs/{code → lib/core}/sh.jinx +2 -8
- npcsh/npc_team/jinxs/{code → lib/core}/sql.jinx +1 -1
- npcsh/npc_team/jinxs/lib/orchestration/convene.jinx +232 -0
- npcsh/npc_team/jinxs/lib/orchestration/delegate.jinx +184 -0
- npcsh/npc_team/jinxs/lib/research/arxiv.jinx +76 -0
- npcsh/npc_team/jinxs/lib/research/paper_search.jinx +101 -0
- npcsh/npc_team/jinxs/lib/research/semantic_scholar.jinx +69 -0
- npcsh/npc_team/jinxs/{utils/core → lib/utils}/build.jinx +8 -8
- npcsh/npc_team/jinxs/lib/utils/jinxs.jinx +176 -0
- npcsh/npc_team/jinxs/lib/utils/shh.jinx +17 -0
- npcsh/npc_team/jinxs/lib/utils/switch.jinx +62 -0
- npcsh/npc_team/jinxs/lib/utils/switches.jinx +61 -0
- npcsh/npc_team/jinxs/lib/utils/teamviz.jinx +205 -0
- npcsh/npc_team/jinxs/lib/utils/verbose.jinx +17 -0
- npcsh/npc_team/kadiefa.npc +19 -1
- npcsh/npc_team/plonk.npc +26 -1
- npcsh/npc_team/plonkjr.npc +22 -1
- npcsh/npc_team/sibiji.npc +23 -2
- npcsh/npcsh.py +153 -39
- npcsh/ui.py +22 -1
- npcsh-1.1.15.data/data/npcsh/npc_team/alicanto.npc +23 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/arxiv.jinx +76 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/browser_action.jinx +220 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/browser_screenshot.jinx +40 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/build.jinx +8 -8
- npcsh-1.1.15.data/data/npcsh/npc_team/click.jinx +23 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/close_browser.jinx +14 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/convene.jinx +232 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/corca.npc +31 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/delegate.jinx +184 -0
- {npcsh/npc_team/jinxs/utils → npcsh-1.1.15.data/data/npcsh/npc_team}/edit_file.jinx +3 -3
- npcsh-1.1.15.data/data/npcsh/npc_team/frederic.npc +27 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/guac.npc +22 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/jinxs.jinx +176 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/kadiefa.npc +21 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/key_press.jinx +26 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/launch_app.jinx +37 -0
- {npcsh/npc_team/jinxs/utils → npcsh-1.1.15.data/data/npcsh/npc_team}/load_file.jinx +1 -1
- npcsh-1.1.15.data/data/npcsh/npc_team/nql.jinx +141 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/open_browser.jinx +43 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/paper_search.jinx +101 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/paste.jinx +134 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/plonk.npc +27 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/plonkjr.npc +23 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/screenshot.jinx +23 -0
- {npcsh/npc_team/jinxs/utils → npcsh-1.1.15.data/data/npcsh/npc_team}/search.jinx +2 -1
- npcsh-1.1.15.data/data/npcsh/npc_team/semantic_scholar.jinx +69 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/sh.jinx +2 -8
- npcsh-1.1.15.data/data/npcsh/npc_team/shh.jinx +17 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/sibiji.npc +24 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/sql.jinx +1 -1
- npcsh-1.1.15.data/data/npcsh/npc_team/switch.jinx +62 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/switches.jinx +61 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/sync.jinx +230 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/teamviz.jinx +205 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/type_text.jinx +27 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/verbose.jinx +17 -0
- {npcsh/npc_team/jinxs/utils → npcsh-1.1.15.data/data/npcsh/npc_team}/vixynt.jinx +8 -30
- npcsh-1.1.15.data/data/npcsh/npc_team/wait.jinx +21 -0
- npcsh-1.1.15.data/data/npcsh/npc_team/wander.jinx +152 -0
- {npcsh-1.1.14.dist-info → npcsh-1.1.15.dist-info}/METADATA +399 -58
- npcsh-1.1.15.dist-info/RECORD +170 -0
- npcsh-1.1.15.dist-info/entry_points.txt +19 -0
- npcsh-1.1.15.dist-info/top_level.txt +2 -0
- project/__init__.py +1 -0
- npcsh/npc_team/foreman.npc +0 -7
- npcsh/npc_team/jinxs/modes/alicanto.jinx +0 -194
- npcsh/npc_team/jinxs/modes/corca.jinx +0 -249
- npcsh/npc_team/jinxs/modes/guac.jinx +0 -317
- npcsh/npc_team/jinxs/modes/plonk.jinx +0 -214
- npcsh/npc_team/jinxs/modes/pti.jinx +0 -170
- npcsh/npc_team/jinxs/modes/wander.jinx +0 -186
- npcsh/npc_team/jinxs/utils/agent.jinx +0 -17
- npcsh/npc_team/jinxs/utils/core/jinxs.jinx +0 -32
- npcsh-1.1.14.data/data/npcsh/npc_team/agent.jinx +0 -17
- npcsh-1.1.14.data/data/npcsh/npc_team/alicanto.jinx +0 -194
- npcsh-1.1.14.data/data/npcsh/npc_team/alicanto.npc +0 -2
- npcsh-1.1.14.data/data/npcsh/npc_team/corca.jinx +0 -249
- npcsh-1.1.14.data/data/npcsh/npc_team/corca.npc +0 -12
- npcsh-1.1.14.data/data/npcsh/npc_team/foreman.npc +0 -7
- npcsh-1.1.14.data/data/npcsh/npc_team/frederic.npc +0 -6
- npcsh-1.1.14.data/data/npcsh/npc_team/guac.jinx +0 -317
- npcsh-1.1.14.data/data/npcsh/npc_team/jinxs.jinx +0 -32
- npcsh-1.1.14.data/data/npcsh/npc_team/kadiefa.npc +0 -3
- npcsh-1.1.14.data/data/npcsh/npc_team/plonk.jinx +0 -214
- npcsh-1.1.14.data/data/npcsh/npc_team/plonk.npc +0 -2
- npcsh-1.1.14.data/data/npcsh/npc_team/plonkjr.npc +0 -2
- npcsh-1.1.14.data/data/npcsh/npc_team/pti.jinx +0 -170
- npcsh-1.1.14.data/data/npcsh/npc_team/sibiji.npc +0 -3
- npcsh-1.1.14.data/data/npcsh/npc_team/wander.jinx +0 -186
- npcsh-1.1.14.dist-info/RECORD +0 -135
- npcsh-1.1.14.dist-info/entry_points.txt +0 -9
- npcsh-1.1.14.dist-info/top_level.txt +0 -1
- /npcsh/npc_team/jinxs/{utils → bin}/roll.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → bin}/sample.jinx +0 -0
- /npcsh/npc_team/jinxs/{modes → bin}/spool.jinx +0 -0
- /npcsh/npc_team/jinxs/{modes → bin}/yap.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/computer_use}/trigger.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/core}/chat.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/core}/cmd.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/core}/compress.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/core}/ots.jinx +0 -0
- /npcsh/npc_team/jinxs/{code → lib/core}/python.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/core}/sleep.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils/core → lib/utils}/compile.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils/core → lib/utils}/help.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils/core → lib/utils}/init.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/utils}/serve.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils/core → lib/utils}/set.jinx +0 -0
- /npcsh/npc_team/jinxs/{utils → lib/utils}/usage.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/alicanto.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/chat.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/cmd.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/compile.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/compress.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/corca.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/corca_example.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/frederic4.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/guac.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/help.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/init.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/kadiefa.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/npc-studio.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/npcsh.ctx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/npcsh_sibiji.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/ots.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/plonk.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/plonkjr.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/python.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/roll.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/sample.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/serve.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/set.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/sibiji.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/sleep.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/spool.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/spool.png +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/trigger.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/usage.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/yap.jinx +0 -0
- {npcsh-1.1.14.data → npcsh-1.1.15.data}/data/npcsh/npc_team/yap.png +0 -0
- {npcsh-1.1.14.dist-info → npcsh-1.1.15.dist-info}/WHEEL +0 -0
- {npcsh-1.1.14.dist-info → npcsh-1.1.15.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
jinx_name: wander
|
|
2
|
+
description: Creative daydreaming with probabilistic temperature shifts mid-stream
|
|
3
|
+
inputs:
|
|
4
|
+
- problem
|
|
5
|
+
steps:
|
|
6
|
+
- name: wander_explore
|
|
7
|
+
engine: python
|
|
8
|
+
code: |
|
|
9
|
+
import random
|
|
10
|
+
from termcolor import colored
|
|
11
|
+
from npcpy.llm_funcs import get_llm_response
|
|
12
|
+
|
|
13
|
+
problem = context.get('problem', '')
|
|
14
|
+
if not problem:
|
|
15
|
+
context['output'] = "Need a topic to wander about."
|
|
16
|
+
exit()
|
|
17
|
+
|
|
18
|
+
model = 'gpt-4.1-nano'
|
|
19
|
+
provider = 'openai'
|
|
20
|
+
low_temp = 0.5
|
|
21
|
+
high_temp = 1.9
|
|
22
|
+
sample_rate = 0.4
|
|
23
|
+
interrupt_prob = 0.02
|
|
24
|
+
|
|
25
|
+
print(f"""
|
|
26
|
+
██╗ ██╗ █████╗ ███╗ ██╗██████╗ ███████╗██████╗
|
|
27
|
+
██║ ██║██╔══██╗████╗ ██║██╔══██╗██╔════╝██╔══██╗
|
|
28
|
+
██║ █╗ ██║███████║██╔██╗ ██║██║ ██║█████╗ ██████╔╝
|
|
29
|
+
██║███╗██║██╔══██║██║╚██╗██║██║ ██║██╔══╝ ██╔══██╗
|
|
30
|
+
╚███╔███╔╝██║ ██║██║ ╚████║██████╔╝███████╗██║ ██║
|
|
31
|
+
╚══╝╚══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚══════╝╚═╝ ╚═╝
|
|
32
|
+
|
|
33
|
+
Wandering: {problem}
|
|
34
|
+
""")
|
|
35
|
+
|
|
36
|
+
print(colored(f"--- Low temp stream ({low_temp}) ---", "cyan"))
|
|
37
|
+
|
|
38
|
+
low_prompt = f"Think about: {problem}"
|
|
39
|
+
resp = get_llm_response(low_prompt, model=model, provider=provider, temperature=low_temp, stream=True)
|
|
40
|
+
|
|
41
|
+
# Get the actual stream from the response
|
|
42
|
+
stream = resp.get('response') if isinstance(resp, dict) else resp
|
|
43
|
+
|
|
44
|
+
low_output = ""
|
|
45
|
+
interrupted = False
|
|
46
|
+
|
|
47
|
+
for chunk in stream:
|
|
48
|
+
if hasattr(chunk, 'choices') and chunk.choices:
|
|
49
|
+
delta = chunk.choices[0].delta
|
|
50
|
+
text = getattr(delta, 'content', '') or ''
|
|
51
|
+
elif isinstance(chunk, dict):
|
|
52
|
+
text = chunk.get('content', '') or chunk.get('response', '')
|
|
53
|
+
else:
|
|
54
|
+
text = ''
|
|
55
|
+
|
|
56
|
+
if text:
|
|
57
|
+
print(text, end='', flush=True)
|
|
58
|
+
low_output += text
|
|
59
|
+
|
|
60
|
+
if random.random() < interrupt_prob:
|
|
61
|
+
print(colored("\n[INTERRUPT]", "yellow"))
|
|
62
|
+
interrupted = True
|
|
63
|
+
break
|
|
64
|
+
|
|
65
|
+
print()
|
|
66
|
+
|
|
67
|
+
print(colored(f"\n--- High temp stream ({high_temp}) ---", "cyan"))
|
|
68
|
+
|
|
69
|
+
high_prompt = f"{low_output}\n\nContinue:"
|
|
70
|
+
resp = get_llm_response(high_prompt, model=model, provider=provider, temperature=high_temp, stream=True)
|
|
71
|
+
stream = resp.get('response') if isinstance(resp, dict) else resp
|
|
72
|
+
|
|
73
|
+
high_output = ""
|
|
74
|
+
for chunk in stream:
|
|
75
|
+
if hasattr(chunk, 'choices') and chunk.choices:
|
|
76
|
+
delta = chunk.choices[0].delta
|
|
77
|
+
text = getattr(delta, 'content', '') or ''
|
|
78
|
+
elif isinstance(chunk, dict):
|
|
79
|
+
text = chunk.get('content', '') or chunk.get('response', '')
|
|
80
|
+
else:
|
|
81
|
+
text = ''
|
|
82
|
+
|
|
83
|
+
if text:
|
|
84
|
+
print(text, end='', flush=True)
|
|
85
|
+
high_output += text
|
|
86
|
+
|
|
87
|
+
print()
|
|
88
|
+
|
|
89
|
+
lines = [l for l in high_output.split('\n') if l.strip()]
|
|
90
|
+
sample_size = max(1, int(len(lines) * sample_rate))
|
|
91
|
+
sampled = random.sample(lines, sample_size) if lines else [high_output]
|
|
92
|
+
|
|
93
|
+
print(colored("\n=== SAMPLED INSIGHTS ===", "yellow"))
|
|
94
|
+
fragments_text = chr(10).join(sampled)
|
|
95
|
+
print(fragments_text)
|
|
96
|
+
|
|
97
|
+
print(colored("\n=== SYNTHESIS ===", "green"))
|
|
98
|
+
|
|
99
|
+
synthesis_prompt = f"""You are a mad scientist oracle. The gibberish below contains hidden truths.
|
|
100
|
+
|
|
101
|
+
QUESTION: {problem}
|
|
102
|
+
|
|
103
|
+
CHAOS FRAGMENTS:
|
|
104
|
+
{fragments_text}
|
|
105
|
+
|
|
106
|
+
RULES:
|
|
107
|
+
1. You MUST use AT LEAST HALF of the fragments above - quote them directly
|
|
108
|
+
2. Make WILD CREATIVE LEAPS - not academic, not safe, not obvious
|
|
109
|
+
3. Find patterns in the noise like reading entrails or tea leaves
|
|
110
|
+
4. Foreign text, Unicode garbage, code snippets - ALL are omens with meaning
|
|
111
|
+
5. Puns, wordplay, phonetic similarities - all valid connections
|
|
112
|
+
6. The weirder the connection, the better
|
|
113
|
+
7. NO HEDGING. No "this suggests" or "perhaps". Be BOLD. Be CERTAIN.
|
|
114
|
+
|
|
115
|
+
OUTPUT 3 WILD HYPOTHESES:
|
|
116
|
+
For each: Quote the fragments you're using -> Make your creative leap -> State the bold claim
|
|
117
|
+
|
|
118
|
+
These must be ideas that COULD NOT exist without this specific chaos. Surprise us. Make us see {problem} in a way nobody has before."""
|
|
119
|
+
|
|
120
|
+
resp = get_llm_response(synthesis_prompt, model=model, provider=provider, temperature=0.5, stream=True)
|
|
121
|
+
stream = resp.get('response') if isinstance(resp, dict) else resp
|
|
122
|
+
|
|
123
|
+
synthesis = ""
|
|
124
|
+
for chunk in stream:
|
|
125
|
+
if hasattr(chunk, 'choices') and chunk.choices:
|
|
126
|
+
delta = chunk.choices[0].delta
|
|
127
|
+
text = getattr(delta, 'content', '') or ''
|
|
128
|
+
elif isinstance(chunk, dict):
|
|
129
|
+
text = chunk.get('content', '') or chunk.get('response', '')
|
|
130
|
+
else:
|
|
131
|
+
text = ''
|
|
132
|
+
|
|
133
|
+
if text:
|
|
134
|
+
print(text, end='', flush=True)
|
|
135
|
+
synthesis += text
|
|
136
|
+
|
|
137
|
+
print()
|
|
138
|
+
|
|
139
|
+
full_output = f"""Wandering: {problem}
|
|
140
|
+
|
|
141
|
+
--- Low temp stream ({low_temp}) ---
|
|
142
|
+
{low_output}
|
|
143
|
+
|
|
144
|
+
--- High temp stream ({high_temp}) ---
|
|
145
|
+
{high_output}
|
|
146
|
+
|
|
147
|
+
=== SAMPLED INSIGHTS ===
|
|
148
|
+
{fragments_text}
|
|
149
|
+
|
|
150
|
+
=== SYNTHESIS ===
|
|
151
|
+
{synthesis}"""
|
|
152
|
+
context['output'] = full_output
|