pipulate 2.81__tar.gz → 2.82__tar.gz
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.
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/journal/references/index.md +5 -3
- {pipulate-2.81 → pipulate-2.82}/PKG-INFO +1 -1
- {pipulate-2.81 → pipulate-2.82}/__init__.py +2 -2
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/PKG-INFO +1 -1
- {pipulate-2.81 → pipulate-2.82}/pyproject.toml +1 -1
- {pipulate-2.81 → pipulate-2.82}/server.py +3 -3
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/gsc-readonly/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/hello-workflow/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/journal/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/pipulate/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/roles/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/.agents/skills/sheets-readonly/SKILL.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/AGENTS.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/AUDIT.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/LICENSE +0 -0
- {pipulate-2.81 → pipulate-2.82}/MANIFEST.in +0 -0
- {pipulate-2.81 → pipulate-2.82}/README.md +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/010_introduction.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/015_config.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/020_profiles.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/025_aspect.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/030_roles.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/040_hello_workflow.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/050_documentation.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/060_tasks.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/070_history.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/130_gap_analysis.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/200_workflow_genesis.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/210_widget_examples.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/220_roadmap.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/230_dev_assistant.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/240_simon_mcp.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/300_blank_placeholder.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/440_browser_automation.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/450_stream_simulator.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/510_text_field.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/520_text_area.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/530_dropdown.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/540_checkboxes.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/550_radios.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/560_range.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/570_switch.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/580_upload.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/610_markdown.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/620_mermaid.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/630_prism.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/640_javascript.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/710_pandas.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/720_rich.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/730_matplotlib.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/810_webbrowser.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/820_selenium.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/apps/830_pico_slider.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/cli.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/config.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/__init__.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/ai_dictdb.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/ai_tool_discovery_simple_parser.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/append_only_conversation.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/ascii_displays.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/crud.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/database_safety_wrapper.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/dom_processing/__init__.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/dom_processing/ai_dom_beautifier.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/dom_processing/enhanced_dom_processor.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/durable_backup_system.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/mcp_orchestrator.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/server_logging.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/stream_orchestrator.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/imports/voice_synthesis.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate/__init__.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate/core.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/SOURCES.txt +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/dependency_links.txt +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/entry_points.txt +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/requires.txt +0 -0
- {pipulate-2.81 → pipulate-2.82}/pipulate.egg-info/top_level.txt +0 -0
- {pipulate-2.81 → pipulate-2.82}/setup.cfg +0 -0
- {pipulate-2.81 → pipulate-2.82}/tests/test_apply_airlock.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tests/test_mck_rep2.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/__init__.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/advanced_automation_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/connector_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/conversation_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/dom_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/keychain_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/llm_optics.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/mcp_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/scraper_tools.py +0 -0
- {pipulate-2.81 → pipulate-2.82}/tools/system_tools.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Auto-generated on 2026-10-10 by `scripts/articles/generate_ai_context.py` and
|
|
4
4
|
> rewritten from scratch on every release. If this date looks stale, assume
|
|
5
|
-
> the rest of the repo is newer than this map.
|
|
5
|
+
> the rest of the repo is newer than this map. 1530 entries indexed.
|
|
6
6
|
|
|
7
7
|
This repository holds the *machinery*. The *reasoning*, the running journal
|
|
8
8
|
that explains why every piece exists, lives on a separate website and not in
|
|
@@ -27,6 +27,8 @@ The first 20 entries include full `index.md` URLs to establish
|
|
|
27
27
|
the link pattern. All remaining entries are bare slugs. Reconstruct any full
|
|
28
28
|
URL as: `https://mikelev.in/futureproof/{slug}/index.md`
|
|
29
29
|
|
|
30
|
+
- [2026-10-10] [Holding the Reins: Background Daemons, Quiet Shells, and Resisting the Rabbit Hole](https://mikelev.in/futureproof/holding-the-reins-background-daemons-and-rabbit-holes/index.md)
|
|
31
|
+
- [2026-10-10] [Less Messaging: RFC 9110 and the Inspection Airlock](https://mikelev.in/futureproof/less-messaging-rfc9110-inspection-airlock/index.md)
|
|
30
32
|
- [2026-10-10] [Making a Diff: The Minimal Instrument](https://mikelev.in/futureproof/making-a-diff-the-minimal-instrument/index.md)
|
|
31
33
|
- [2026-10-09] [The Heat and the Delete: Landauer's Limit and Verifiable Codebase Pruning](https://mikelev.in/futureproof/the-heat-and-the-delete-verifiable-pruning/index.md)
|
|
32
34
|
- [2026-10-09] [The Inverted Cave: AI Quality Assurance and the Jevons Paradox of Code](https://mikelev.in/futureproof/inverted-cave-ai-quality-assurance-jevons-paradox/index.md)
|
|
@@ -45,13 +47,13 @@ URL as: `https://mikelev.in/futureproof/{slug}/index.md`
|
|
|
45
47
|
- [2026-10-03] [The Single-Owner Rule and the Verifiable Deed: Quieting Pipeline Noise in the Age of AI](https://mikelev.in/futureproof/single-owner-rule-and-verifiable-deeds/index.md)
|
|
46
48
|
- [2026-10-03] [The Render Canary and the Quiet Compiler: Distinguishing Exposure from Corruption in the Age of AI](https://mikelev.in/futureproof/render-canary-and-the-quiet-compiler/index.md)
|
|
47
49
|
- [2026-10-02] [The Enter Fence and the Bell Cue: Building Replayable Browser Walks in the Age of AI](https://mikelev.in/futureproof/the-enter-fence-and-the-bell-cue/index.md)
|
|
48
|
-
- [2026-10-02] [The Clear Cups Protocol: Auditing MCP Calls with Replayable Receipts](https://mikelev.in/futureproof/clear-cups-protocol-auditing-mcp-calls/index.md)
|
|
49
|
-
- [2026-10-02] [The Door Table and the Moving Twig: Replayable Installs and the Stick Bug Secret](https://mikelev.in/futureproof/the-door-table-and-the-moving-twig/index.md)
|
|
50
50
|
|
|
51
51
|
## Compact slug index -- pattern: https://mikelev.in/futureproof/{slug}/index.md
|
|
52
52
|
|
|
53
53
|
Format: `[date] [size] slug` -- fetch any entry as `https://mikelev.in/futureproof/{slug}/index.md`
|
|
54
54
|
|
|
55
|
+
- [2026-10-02] [41k] clear-cups-protocol-auditing-mcp-calls
|
|
56
|
+
- [2026-10-02] [261k] the-door-table-and-the-moving-twig
|
|
55
57
|
- [2026-10-01] [22k] scrollback-rule-clear-x-receipts
|
|
56
58
|
- [2026-10-01] [51k] prefix-ladders-and-the-unalias-guard
|
|
57
59
|
- [2026-09-30] [103k] forever-commands-and-the-talk-toggle
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipulate
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.82
|
|
4
4
|
Summary: The context compiler that helps you prompt well -- local-first, Nix-reproducible, replayable. The successor to AI SEO software.
|
|
5
5
|
Author-email: Mike Levin <pipulate@gmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -12,7 +12,7 @@ Usage:
|
|
|
12
12
|
pipulate
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
__version__ = "2.
|
|
15
|
+
__version__ = "2.82"
|
|
16
16
|
# APOSTROPHES RESTORED (2026-08-04). They were stripped as a workaround for
|
|
17
17
|
# flake.nix's descMatch regex, whose character class excluded ' from the
|
|
18
18
|
# CAPTURE and truncated the banner to "(So)". That regex was fixed in the same
|
|
@@ -23,7 +23,7 @@ __version__ = "2.81"
|
|
|
23
23
|
# is not a property of the system; the regex is. Blast radius is one banner:
|
|
24
24
|
# nothing but flake.nix reads this name -- version_sync.py syncs __version__
|
|
25
25
|
# and __description__, never this. So'wI' chu' -- "engage the cloaking device."
|
|
26
|
-
__version_description__ = "
|
|
26
|
+
__version_description__ = "Pipulate in Tmux"
|
|
27
27
|
# SPDX expression, single source of truth, synced into pyproject.toml by
|
|
28
28
|
# scripts/release/version_sync.py. "-or-later" (not bare AGPL-3.0, which is
|
|
29
29
|
# deprecated SPDX) because the header below grants "any later version".
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipulate
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.82
|
|
4
4
|
Summary: The context compiler that helps you prompt well -- local-first, Nix-reproducible, replayable. The successor to AI SEO software.
|
|
5
5
|
Author-email: Mike Levin <pipulate@gmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pipulate"
|
|
7
7
|
# VERSION NOTE: Synced from pipulate/__init__.py.__version__ via python version_sync.py
|
|
8
|
-
version = "2.
|
|
8
|
+
version = "2.82"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name="Mike Levin", email="pipulate@gmail.com" },
|
|
11
11
|
]
|
|
@@ -4704,12 +4704,12 @@ async def send_startup_environment_message():
|
|
|
4704
4704
|
env_message = demo_comeback_message
|
|
4705
4705
|
logger.info("🎭 DEMO_COMEBACK: Using special demo comeback message as startup message")
|
|
4706
4706
|
elif current_env == 'Development':
|
|
4707
|
-
env_message = f"🚀 Server started in {env_display} mode. Ready for experimentation and testing!"
|
|
4707
|
+
env_message = f"🚀 Server started in {env_display} mode on localhost colon 5001. Ready for experimentation and testing!"
|
|
4708
4708
|
else:
|
|
4709
|
-
env_message = f"🚀 Server started in {env_display} mode. Ready for production use."
|
|
4709
|
+
env_message = f"🚀 Server started in {env_display} mode on localhost colon 5001. Ready for production use."
|
|
4710
4710
|
# 🎤 Speak it into existence!
|
|
4711
4711
|
pronounce = {"DEV": "Developer", "Prod": "Production"}
|
|
4712
|
-
pipulate.speak(f"Server started in {pronounce[env_display]} mode.", wait=False)
|
|
4712
|
+
pipulate.speak(f"Server started in {pronounce[env_display]} mode on localhost colon 5001.", wait=False)
|
|
4713
4713
|
|
|
4714
4714
|
# Ensure message queue is ready with retry logic
|
|
4715
4715
|
max_retries = 3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|