pipulate 2.72__tar.gz → 2.73__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.72 → pipulate-2.73}/.agents/skills/journal/references/index.md +3 -2
- {pipulate-2.72 → pipulate-2.73}/PKG-INFO +8 -8
- {pipulate-2.72 → pipulate-2.73}/README.md +7 -7
- {pipulate-2.72 → pipulate-2.73}/__init__.py +2 -2
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/PKG-INFO +8 -8
- {pipulate-2.72 → pipulate-2.73}/pyproject.toml +1 -1
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/gsc-readonly/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/hello-workflow/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/journal/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/pipulate/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/roles/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/.agents/skills/sheets-readonly/SKILL.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/AGENTS.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/AUDIT.md +0 -0
- {pipulate-2.72 → pipulate-2.73}/LICENSE +0 -0
- {pipulate-2.72 → pipulate-2.73}/MANIFEST.in +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/010_introduction.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/015_config.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/020_profiles.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/025_aspect.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/030_roles.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/040_hello_workflow.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/050_documentation.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/060_tasks.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/070_history.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/110_parameter_buster.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/120_link_graph.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/130_gap_analysis.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/200_workflow_genesis.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/210_widget_examples.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/220_roadmap.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/230_dev_assistant.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/240_simon_mcp.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/300_blank_placeholder.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/400_botify_trifecta.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/440_browser_automation.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/450_stream_simulator.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/510_text_field.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/520_text_area.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/530_dropdown.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/540_checkboxes.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/550_radios.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/560_range.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/570_switch.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/580_upload.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/610_markdown.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/620_mermaid.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/630_prism.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/640_javascript.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/710_pandas.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/720_rich.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/730_matplotlib.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/810_webbrowser.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/820_selenium.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/apps/830_pico_slider.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/cli.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/config.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/__init__.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/ai_dictdb.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/ai_tool_discovery_simple_parser.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/append_only_conversation.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/ascii_displays.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/botify/__init__.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/botify/code_generators.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/botify/true_schema_discoverer.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/botify_code_generation.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/crud.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/database_safety_wrapper.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/dom_processing/__init__.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/dom_processing/ai_dom_beautifier.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/dom_processing/enhanced_dom_processor.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/durable_backup_system.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/mcp_orchestrator.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/server_logging.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/stream_orchestrator.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/imports/voice_synthesis.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate/__init__.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate/core.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/SOURCES.txt +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/dependency_links.txt +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/entry_points.txt +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/requires.txt +0 -0
- {pipulate-2.72 → pipulate-2.73}/pipulate.egg-info/top_level.txt +0 -0
- {pipulate-2.72 → pipulate-2.73}/server.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/setup.cfg +0 -0
- {pipulate-2.72 → pipulate-2.73}/tests/test_apply_airlock.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tests/test_mck_rep2.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/__init__.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/advanced_automation_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/botify_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/connector_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/conversation_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/dom_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/keychain_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/llm_optics.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/mcp_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/scraper_tools.py +0 -0
- {pipulate-2.72 → pipulate-2.73}/tools/system_tools.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Auto-generated on 2026-09-29 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. 1505 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,7 @@ 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-09-29] [Layered Reality and Operator Overloading: Reading the Physics of CPython in the Age of AI](https://mikelev.in/futureproof/layered-reality-operator-overloading-cpython/index.md)
|
|
30
31
|
- [2026-09-29] [The Three-Door Installer: Named Prompts, Split DNS, and Verifiable Releases](https://mikelev.in/futureproof/the-three-door-installer-and-named-prompts/index.md)
|
|
31
32
|
- [2026-09-29] [The Deed Is Named for the Door: Engineering Replayable QA Archives for AI](https://mikelev.in/futureproof/the-deed-is-named-for-the-door-qa-archive-zip/index.md)
|
|
32
33
|
- [2026-09-29] [The Qamy Door and the Cellular Witness: Launching a Third Domain with Replayable Receipts](https://mikelev.in/futureproof/qamy-door-cellular-witness-replayable-receipts/index.md)
|
|
@@ -46,12 +47,12 @@ URL as: `https://mikelev.in/futureproof/{slug}/index.md`
|
|
|
46
47
|
- [2026-09-19] [Dual-Model Failover: Engineering Independent Backoff Clocks for LLM APIs](https://mikelev.in/futureproof/dual-model-failover-independent-backoff/index.md)
|
|
47
48
|
- [2026-09-19] [Playing Pinball in the Age of AI: A Replayable Workflow Guide](https://mikelev.in/futureproof/playing-pinball-in-the-age-of-ai-replayable-workflow-guide/index.md)
|
|
48
49
|
- [2026-09-19] [The Color Blue and the Pipe: Inspecting Code Before Execution](https://mikelev.in/futureproof/color-blue-pipe-inspecting-code/index.md)
|
|
49
|
-
- [2026-09-19] [Edna Mode Rules for AI Workflows: Why Practical Tooling Beats Fragile Abstractions](https://mikelev.in/futureproof/edna-mode-rules-for-ai-workflows/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-09-19] [294k] edna-mode-rules-for-ai-workflows
|
|
55
56
|
- [2026-09-18] [207k] the-one-door-threshold-replayable-ai-workflows
|
|
56
57
|
- [2026-09-18] [292k] the-first-ten-minutes-reproducible-ai-workflows
|
|
57
58
|
- [2026-09-17] [184k] retrieval-cue-memory-consolidation-selective-hydration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pipulate
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.73
|
|
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
|
|
@@ -62,13 +62,13 @@ Dynamic: license-file
|
|
|
62
62
|
3. For the Why: `.agents/skills/journal/` (the journal index, an Agent Skills reference; served at https://pipulate.com/AI_CONTEXT.md )
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
(
|
|
66
|
-
|
|
67
|
-
>
|
|
68
|
-
>
|
|
69
|
-
>
|
|
70
|
-
>
|
|
71
|
-
>
|
|
65
|
+
( Do you put your name on it because Claude said so? )
|
|
66
|
+
O /) __
|
|
67
|
+
> Do you think the Aviation industry o /)\__// / \ "What Claude said" is a Cockpit
|
|
68
|
+
> vibe-codes without checking for ___(/_ 0 0 | | Voice Recorder (CVR) hear-say of a
|
|
69
|
+
> confident hallucinations? So then *( ==(_T_)== QA | subcontractor. This tool is a Flight
|
|
70
|
+
> why should you? If anyone relies on \ ) ""\ | | Data Recorder (FDR) for High Reliability
|
|
71
|
+
> your work then you should Q/A it. |__>-\_>_> \__/ Organizations (HROs). Use when it matters.
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
## If you can't reproduce it, it didn't happen
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
3. For the Why: `.agents/skills/journal/` (the journal index, an Agent Skills reference; served at https://pipulate.com/AI_CONTEXT.md )
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
(
|
|
9
|
-
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
>
|
|
14
|
-
>
|
|
8
|
+
( Do you put your name on it because Claude said so? )
|
|
9
|
+
O /) __
|
|
10
|
+
> Do you think the Aviation industry o /)\__// / \ "What Claude said" is a Cockpit
|
|
11
|
+
> vibe-codes without checking for ___(/_ 0 0 | | Voice Recorder (CVR) hear-say of a
|
|
12
|
+
> confident hallucinations? So then *( ==(_T_)== QA | subcontractor. This tool is a Flight
|
|
13
|
+
> why should you? If anyone relies on \ ) ""\ | | Data Recorder (FDR) for High Reliability
|
|
14
|
+
> your work then you should Q/A it. |__>-\_>_> \__/ Organizations (HROs). Use when it matters.
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## If you can't reproduce it, it didn't happen
|
|
@@ -12,7 +12,7 @@ Usage:
|
|
|
12
12
|
pipulate
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
__version__ = "2.
|
|
15
|
+
__version__ = "2.73"
|
|
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.72"
|
|
|
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__ = "Follow the White Rabbit"
|
|
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.73
|
|
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
|
|
@@ -62,13 +62,13 @@ Dynamic: license-file
|
|
|
62
62
|
3. For the Why: `.agents/skills/journal/` (the journal index, an Agent Skills reference; served at https://pipulate.com/AI_CONTEXT.md )
|
|
63
63
|
|
|
64
64
|
```text
|
|
65
|
-
(
|
|
66
|
-
|
|
67
|
-
>
|
|
68
|
-
>
|
|
69
|
-
>
|
|
70
|
-
>
|
|
71
|
-
>
|
|
65
|
+
( Do you put your name on it because Claude said so? )
|
|
66
|
+
O /) __
|
|
67
|
+
> Do you think the Aviation industry o /)\__// / \ "What Claude said" is a Cockpit
|
|
68
|
+
> vibe-codes without checking for ___(/_ 0 0 | | Voice Recorder (CVR) hear-say of a
|
|
69
|
+
> confident hallucinations? So then *( ==(_T_)== QA | subcontractor. This tool is a Flight
|
|
70
|
+
> why should you? If anyone relies on \ ) ""\ | | Data Recorder (FDR) for High Reliability
|
|
71
|
+
> your work then you should Q/A it. |__>-\_>_> \__/ Organizations (HROs). Use when it matters.
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
## If you can't reproduce it, it didn't happen
|
|
@@ -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.73"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name="Mike Levin", email="pipulate@gmail.com" },
|
|
11
11
|
]
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|