@hera-al/server 1.6.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/LICENSE +21 -0
- package/README.md +325 -0
- package/bundled/apple-notes/SKILL.md +77 -0
- package/bundled/apple-reminders/SKILL.md +96 -0
- package/bundled/blogwatcher/SKILL.md +69 -0
- package/bundled/camsnap/SKILL.md +45 -0
- package/bundled/discord/SKILL.md +578 -0
- package/bundled/gemini/SKILL.md +43 -0
- package/bundled/gifgrep/SKILL.md +79 -0
- package/bundled/github/SKILL.md +77 -0
- package/bundled/gog/SKILL.md +116 -0
- package/bundled/goplaces/SKILL.md +52 -0
- package/bundled/himalaya/SKILL.md +257 -0
- package/bundled/himalaya/references/configuration.md +184 -0
- package/bundled/himalaya/references/message-composition.md +199 -0
- package/bundled/homebrew/SKILL.md +82 -0
- package/bundled/local-places/SERVER_README.md +101 -0
- package/bundled/local-places/SKILL.md +102 -0
- package/bundled/local-places/pyproject.toml +21 -0
- package/bundled/local-places/src/local_places/__init__.py +2 -0
- package/bundled/local-places/src/local_places/google_places.py +314 -0
- package/bundled/local-places/src/local_places/main.py +65 -0
- package/bundled/local-places/src/local_places/schemas.py +107 -0
- package/bundled/markitdown/SKILL.md +96 -0
- package/bundled/mcporter/SKILL.md +61 -0
- package/bundled/merge-pr/SKILL.md +187 -0
- package/bundled/merge-pr/agents/openai.yaml +4 -0
- package/bundled/nano-banana-pro/SKILL.md +58 -0
- package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
- package/bundled/nano-pdf/SKILL.md +38 -0
- package/bundled/open-prose/README.md +25 -0
- package/bundled/open-prose/index.ts +5 -0
- package/bundled/open-prose/openclaw.plugin.json +11 -0
- package/bundled/open-prose/package.json +15 -0
- package/bundled/open-prose/skills/prose/LICENSE +21 -0
- package/bundled/open-prose/skills/prose/SKILL.md +323 -0
- package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
- package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
- package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
- package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
- package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
- package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
- package/bundled/open-prose/skills/prose/compiler.md +2971 -0
- package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
- package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
- package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
- package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
- package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
- package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
- package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
- package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
- package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
- package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
- package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
- package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
- package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
- package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
- package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
- package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
- package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
- package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
- package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
- package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
- package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
- package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
- package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
- package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
- package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
- package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
- package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
- package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
- package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
- package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
- package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
- package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
- package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
- package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
- package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
- package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
- package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
- package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
- package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
- package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
- package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
- package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
- package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
- package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
- package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
- package/bundled/open-prose/skills/prose/examples/README.md +391 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
- package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
- package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
- package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
- package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
- package/bundled/open-prose/skills/prose/help.md +144 -0
- package/bundled/open-prose/skills/prose/lib/README.md +108 -0
- package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
- package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
- package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
- package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
- package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
- package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
- package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
- package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
- package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
- package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
- package/bundled/open-prose/skills/prose/prose.md +1237 -0
- package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
- package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
- package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
- package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
- package/bundled/peekaboo/SKILL.md +190 -0
- package/bundled/prepare-pr/SKILL.md +277 -0
- package/bundled/prepare-pr/agents/openai.yaml +4 -0
- package/bundled/review-pr/SKILL.md +228 -0
- package/bundled/review-pr/agents/openai.yaml +4 -0
- package/bundled/sag/SKILL.md +87 -0
- package/bundled/skill-creator/SKILL.md +370 -0
- package/bundled/skill-creator/license.txt +202 -0
- package/bundled/skill-creator/scripts/init_skill.py +378 -0
- package/bundled/skill-creator/scripts/package_skill.py +111 -0
- package/bundled/skill-creator/scripts/quick_validate.py +101 -0
- package/bundled/spotify-player/SKILL.md +64 -0
- package/bundled/ssh/SKILL.md +119 -0
- package/bundled/summarize/SKILL.md +87 -0
- package/bundled/video-frames/SKILL.md +46 -0
- package/bundled/video-frames/scripts/frame.sh +81 -0
- package/bundled/voice-call/SKILL.md +45 -0
- package/bundled/wacli/SKILL.md +72 -0
- package/bundled/weather/SKILL.md +54 -0
- package/dist/agent/agent-service.d.ts +88 -0
- package/dist/agent/agent-service.js +1 -0
- package/dist/agent/message-queue.d.ts +24 -0
- package/dist/agent/message-queue.js +1 -0
- package/dist/agent/prompt-builder.d.ts +58 -0
- package/dist/agent/prompt-builder.js +1 -0
- package/dist/agent/session-agent.d.ts +197 -0
- package/dist/agent/session-agent.js +1 -0
- package/dist/agent/session-db.d.ts +26 -0
- package/dist/agent/session-db.js +1 -0
- package/dist/agent/session-error-handler.d.ts +37 -0
- package/dist/agent/session-error-handler.js +1 -0
- package/dist/agent/session-manager.d.ts +19 -0
- package/dist/agent/session-manager.js +1 -0
- package/dist/agent/workspace-files.d.ts +51 -0
- package/dist/agent/workspace-files.js +1 -0
- package/dist/auth/auth-middleware.d.ts +9 -0
- package/dist/auth/auth-middleware.js +1 -0
- package/dist/auth/node-signature-db.d.ts +30 -0
- package/dist/auth/node-signature-db.js +1 -0
- package/dist/auth/token-db.d.ts +38 -0
- package/dist/auth/token-db.js +1 -0
- package/dist/browser/browser-service.d.ts +9 -0
- package/dist/browser/browser-service.js +1 -0
- package/dist/channels/channel.d.ts +2 -0
- package/dist/channels/channel.js +1 -0
- package/dist/channels/responses.d.ts +21 -0
- package/dist/channels/responses.js +1 -0
- package/dist/commands/clear.d.ts +7 -0
- package/dist/commands/clear.js +1 -0
- package/dist/commands/cmd.d.ts +7 -0
- package/dist/commands/cmd.js +1 -0
- package/dist/commands/coder.d.ts +12 -0
- package/dist/commands/coder.js +1 -0
- package/dist/commands/command-registry.d.ts +12 -0
- package/dist/commands/command-registry.js +1 -0
- package/dist/commands/command.d.ts +22 -0
- package/dist/commands/command.js +1 -0
- package/dist/commands/compact.d.ts +7 -0
- package/dist/commands/compact.js +1 -0
- package/dist/commands/customsubagents.d.ts +15 -0
- package/dist/commands/customsubagents.js +1 -0
- package/dist/commands/help.d.ts +9 -0
- package/dist/commands/help.js +1 -0
- package/dist/commands/mcp.d.ts +9 -0
- package/dist/commands/mcp.js +1 -0
- package/dist/commands/model.d.ts +22 -0
- package/dist/commands/model.js +1 -0
- package/dist/commands/models.d.ts +11 -0
- package/dist/commands/models.js +1 -0
- package/dist/commands/new.d.ts +7 -0
- package/dist/commands/new.js +1 -0
- package/dist/commands/plugin.d.ts +7 -0
- package/dist/commands/plugin.js +1 -0
- package/dist/commands/sandbox.d.ts +12 -0
- package/dist/commands/sandbox.js +1 -0
- package/dist/commands/showtool.d.ts +12 -0
- package/dist/commands/showtool.js +1 -0
- package/dist/commands/status.d.ts +24 -0
- package/dist/commands/status.js +1 -0
- package/dist/commands/stop.d.ts +10 -0
- package/dist/commands/stop.js +1 -0
- package/dist/commands/subagents.d.ts +12 -0
- package/dist/commands/subagents.js +1 -0
- package/dist/commands/usage.d.ts +25 -0
- package/dist/commands/usage.js +1 -0
- package/dist/commands/useplugin.d.ts +7 -0
- package/dist/commands/useplugin.js +1 -0
- package/dist/config-watcher.d.ts +14 -0
- package/dist/config-watcher.js +1 -0
- package/dist/config.d.ts +267 -0
- package/dist/config.js +1 -0
- package/dist/cron/cron-service.d.ts +57 -0
- package/dist/cron/cron-service.js +1 -0
- package/dist/cron/heartbeat-token.d.ts +29 -0
- package/dist/cron/heartbeat-token.js +1 -0
- package/dist/cron/schedule.d.ts +3 -0
- package/dist/cron/schedule.js +1 -0
- package/dist/cron/store.d.ts +4 -0
- package/dist/cron/store.js +1 -0
- package/dist/cron/types.d.ts +47 -0
- package/dist/cron/types.js +1 -0
- package/dist/gateway/bridge.d.ts +38 -0
- package/dist/gateway/bridge.js +1 -0
- package/dist/gateway/channel-manager.d.ts +45 -0
- package/dist/gateway/channel-manager.js +1 -0
- package/dist/gateway/channels/qr-image.d.ts +5 -0
- package/dist/gateway/channels/qr-image.js +1 -0
- package/dist/gateway/channels/telegram.d.ts +39 -0
- package/dist/gateway/channels/telegram.js +1 -0
- package/dist/gateway/channels/webchat.d.ts +51 -0
- package/dist/gateway/channels/webchat.js +1 -0
- package/dist/gateway/channels/whatsapp.d.ts +40 -0
- package/dist/gateway/channels/whatsapp.js +1 -0
- package/dist/gateway/node-registry.d.ts +38 -0
- package/dist/gateway/node-registry.js +1 -0
- package/dist/heracli/index.d.ts +3 -0
- package/dist/heracli/index.js +2 -0
- package/dist/heracli/logs.d.ts +13 -0
- package/dist/heracli/logs.js +1 -0
- package/dist/heracli/security/audit.d.ts +17 -0
- package/dist/heracli/security/audit.js +1 -0
- package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
- package/dist/heracli/security/checks/channel-policies.js +1 -0
- package/dist/heracli/security/checks/credentials.d.ts +6 -0
- package/dist/heracli/security/checks/credentials.js +1 -0
- package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
- package/dist/heracli/security/checks/fs-permissions.js +1 -0
- package/dist/heracli/security/checks/network.d.ts +4 -0
- package/dist/heracli/security/checks/network.js +1 -0
- package/dist/heracli/security/report.d.ts +4 -0
- package/dist/heracli/security/report.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/installer/hera.d.ts +3 -0
- package/dist/installer/hera.js +2 -0
- package/dist/media/message-processor.d.ts +23 -0
- package/dist/media/message-processor.js +1 -0
- package/dist/memory/memory-manager.d.ts +21 -0
- package/dist/memory/memory-manager.js +1 -0
- package/dist/memory/memory-provider.d.ts +22 -0
- package/dist/memory/memory-provider.js +1 -0
- package/dist/memory/memory-search.d.ts +102 -0
- package/dist/memory/memory-search.js +1 -0
- package/dist/memory/recall-strategies.d.ts +2 -0
- package/dist/memory/recall-strategies.js +1 -0
- package/dist/nostromo/auth.d.ts +29 -0
- package/dist/nostromo/auth.js +1 -0
- package/dist/nostromo/nostromo.d.ts +23 -0
- package/dist/nostromo/nostromo.js +1 -0
- package/dist/nostromo/ui-html-layout.d.ts +3 -0
- package/dist/nostromo/ui-html-layout.js +1 -0
- package/dist/nostromo/ui-html-modals.d.ts +3 -0
- package/dist/nostromo/ui-html-modals.js +1 -0
- package/dist/nostromo/ui-js-agent.d.ts +3 -0
- package/dist/nostromo/ui-js-agent.js +1 -0
- package/dist/nostromo/ui-js-channels.d.ts +3 -0
- package/dist/nostromo/ui-js-channels.js +1 -0
- package/dist/nostromo/ui-js-competences.d.ts +3 -0
- package/dist/nostromo/ui-js-competences.js +1 -0
- package/dist/nostromo/ui-js-config.d.ts +3 -0
- package/dist/nostromo/ui-js-config.js +1 -0
- package/dist/nostromo/ui-js-core.d.ts +3 -0
- package/dist/nostromo/ui-js-core.js +1 -0
- package/dist/nostromo/ui-js-ops.d.ts +3 -0
- package/dist/nostromo/ui-js-ops.js +1 -0
- package/dist/nostromo/ui-js-prompts.d.ts +3 -0
- package/dist/nostromo/ui-js-prompts.js +1 -0
- package/dist/nostromo/ui-styles.d.ts +3 -0
- package/dist/nostromo/ui-styles.js +1 -0
- package/dist/nostromo/ui.d.ts +2 -0
- package/dist/nostromo/ui.js +1 -0
- package/dist/server.d.ts +80 -0
- package/dist/server.js +1 -0
- package/dist/stt/local-whisper.d.ts +9 -0
- package/dist/stt/local-whisper.js +1 -0
- package/dist/stt/openai-whisper.d.ts +14 -0
- package/dist/stt/openai-whisper.js +1 -0
- package/dist/stt/stt-loader.d.ts +4 -0
- package/dist/stt/stt-loader.js +1 -0
- package/dist/stt/stt-provider.d.ts +4 -0
- package/dist/stt/stt-provider.js +1 -0
- package/dist/tools/browser-tools.d.ts +9 -0
- package/dist/tools/browser-tools.js +1 -0
- package/dist/tools/cron-tools.d.ts +4 -0
- package/dist/tools/cron-tools.js +1 -0
- package/dist/tools/memory-tools.d.ts +3 -0
- package/dist/tools/memory-tools.js +1 -0
- package/dist/tools/message-tools.d.ts +5 -0
- package/dist/tools/message-tools.js +1 -0
- package/dist/tools/node-tools.d.ts +3 -0
- package/dist/tools/node-tools.js +1 -0
- package/dist/tools/server-tools.d.ts +2 -0
- package/dist/tools/server-tools.js +1 -0
- package/dist/tools/tts-tools.d.ts +3 -0
- package/dist/tools/tts-tools.js +1 -0
- package/dist/tts/tts-service.d.ts +19 -0
- package/dist/tts/tts-service.js +1 -0
- package/dist/utils/chunk.d.ts +3 -0
- package/dist/utils/chunk.js +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.js +1 -0
- package/dist/utils/markdown/fences.d.ts +11 -0
- package/dist/utils/markdown/fences.js +1 -0
- package/dist/utils/markdown/ir.d.ts +33 -0
- package/dist/utils/markdown/ir.js +1 -0
- package/dist/utils/markdown/render.d.ts +19 -0
- package/dist/utils/markdown/render.js +1 -0
- package/dist/utils/markdown/tables.d.ts +3 -0
- package/dist/utils/markdown/tables.js +1 -0
- package/dist/utils/media-response.d.ts +29 -0
- package/dist/utils/media-response.js +1 -0
- package/dist/utils/package-paths.d.ts +5 -0
- package/dist/utils/package-paths.js +1 -0
- package/dist/utils/telegram-format.d.ts +13 -0
- package/dist/utils/telegram-format.js +1 -0
- package/installationPkg/.env.example +26 -0
- package/installationPkg/AGENTS.md +143 -0
- package/installationPkg/BOOTSTRAP.md +45 -0
- package/installationPkg/CBINT.json +16 -0
- package/installationPkg/HEARTBEAT.md +5 -0
- package/installationPkg/IDENTITY.md +7 -0
- package/installationPkg/SOUL.md +36 -0
- package/installationPkg/SYSTEM_PROMPT.md +55 -0
- package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
- package/installationPkg/TOOLS.md +36 -0
- package/installationPkg/USER.md +11 -0
- package/installationPkg/config.example.yaml +291 -0
- package/package.json +95 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
---
|
|
2
|
+
role: experimental
|
|
3
|
+
summary: |
|
|
4
|
+
Folk register for OpenProse—a literary/folklore alternative keyword set.
|
|
5
|
+
Whimsical, theatrical, rooted in fairy tale and myth. For benchmarking
|
|
6
|
+
against the functional register.
|
|
7
|
+
status: draft
|
|
8
|
+
requires: prose.md
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# OpenProse Folk Register
|
|
12
|
+
|
|
13
|
+
> **This is a skin layer.** It requires `prose.md` to be loaded first. All execution semantics, state management, and VM behavior are defined there. This file only provides keyword translations.
|
|
14
|
+
|
|
15
|
+
An alternative register for OpenProse that leans into literary, theatrical, and folklore terminology. The functional register prioritizes utility and clarity; the folk register prioritizes whimsy and narrative flow.
|
|
16
|
+
|
|
17
|
+
## How to Use
|
|
18
|
+
|
|
19
|
+
1. Load `prose.md` first (execution semantics)
|
|
20
|
+
2. Load this file (keyword translations)
|
|
21
|
+
3. When parsing `.prose` files, accept folk keywords as aliases for functional keywords
|
|
22
|
+
4. All execution behavior remains identical—only surface syntax changes
|
|
23
|
+
|
|
24
|
+
> **Design constraint:** Still aims to be "structured but self-evident" per the language tenets—just self-evident to a different sensibility.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Complete Translation Map
|
|
29
|
+
|
|
30
|
+
### Core Constructs
|
|
31
|
+
|
|
32
|
+
| Functional | Folk | Origin | Connotation |
|
|
33
|
+
| ---------- | ---------- | -------- | -------------------------------------- |
|
|
34
|
+
| `agent` | `sprite` | Folklore | Quick, light, ephemeral spirit helper |
|
|
35
|
+
| `session` | `scene` | Theatre | A moment of action, theatrical framing |
|
|
36
|
+
| `parallel` | `ensemble` | Theatre | Everyone performs together |
|
|
37
|
+
| `block` | `act` | Theatre | Reusable unit of dramatic action |
|
|
38
|
+
|
|
39
|
+
### Composition & Binding
|
|
40
|
+
|
|
41
|
+
| Functional | Folk | Origin | Connotation |
|
|
42
|
+
| ---------- | --------- | ----------------- | -------------------------------- |
|
|
43
|
+
| `use` | `summon` | Folklore | Calling forth from elsewhere |
|
|
44
|
+
| `input` | `given` | Fairy tale | "Given a magic sword..." |
|
|
45
|
+
| `output` | `yield` | Agriculture/magic | What the spell produces |
|
|
46
|
+
| `let` | `name` | Folklore | Naming has power (true names) |
|
|
47
|
+
| `const` | `seal` | Medieval | Unchangeable, wax seal on decree |
|
|
48
|
+
| `context` | `bearing` | Heraldry | What the messenger carries |
|
|
49
|
+
|
|
50
|
+
### Control Flow
|
|
51
|
+
|
|
52
|
+
| Functional | Folk | Origin | Connotation |
|
|
53
|
+
| ---------- | ------------------ | ------------ | ----------------------------------- |
|
|
54
|
+
| `repeat N` | `N times` | Fairy tale | "Three times she called..." |
|
|
55
|
+
| `for...in` | `for each...among` | Narrative | Slightly more storytelling |
|
|
56
|
+
| `loop` | `loop` | — | Already poetic, unchanged |
|
|
57
|
+
| `until` | `until` | — | Already works, unchanged |
|
|
58
|
+
| `while` | `while` | — | Already works, unchanged |
|
|
59
|
+
| `choice` | `crossroads` | Folklore | Fateful decisions at the crossroads |
|
|
60
|
+
| `option` | `path` | Journey | Which path to take |
|
|
61
|
+
| `if` | `when` | Narrative | "When the moon rises..." |
|
|
62
|
+
| `elif` | `or when` | Narrative | Continued conditional |
|
|
63
|
+
| `else` | `otherwise` | Storytelling | Natural narrative alternative |
|
|
64
|
+
|
|
65
|
+
### Error Handling
|
|
66
|
+
|
|
67
|
+
| Functional | Folk | Origin | Connotation |
|
|
68
|
+
| ---------- | ---------------- | ---------- | ------------------------------ |
|
|
69
|
+
| `try` | `venture` | Adventure | Attempting something uncertain |
|
|
70
|
+
| `catch` | `should it fail` | Narrative | Conditional failure handling |
|
|
71
|
+
| `finally` | `ever after` | Fairy tale | "And ever after..." |
|
|
72
|
+
| `throw` | `cry` | Drama | Raising alarm, calling out |
|
|
73
|
+
| `retry` | `persist` | Quest | Keep trying against odds |
|
|
74
|
+
|
|
75
|
+
### Session Properties
|
|
76
|
+
|
|
77
|
+
| Functional | Folk | Origin | Connotation |
|
|
78
|
+
| ---------- | -------- | -------- | ---------------------- |
|
|
79
|
+
| `prompt` | `charge` | Chivalry | Giving a quest or duty |
|
|
80
|
+
| `model` | `voice` | Theatre | Which voice speaks |
|
|
81
|
+
|
|
82
|
+
### Unchanged
|
|
83
|
+
|
|
84
|
+
These keywords already have poetic quality or are too functional to replace sensibly:
|
|
85
|
+
|
|
86
|
+
- `**...**` discretion markers — already "breaking the fourth wall"
|
|
87
|
+
- `loop`, `until`, `while` — already work narratively
|
|
88
|
+
- `map`, `filter`, `reduce`, `pmap` — pipeline operators, functional is fine
|
|
89
|
+
- `max` — constraint modifier
|
|
90
|
+
- `as` — aliasing
|
|
91
|
+
- Model names: `sonnet`, `opus`, `haiku` — already poetic
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Side-by-Side Comparison
|
|
96
|
+
|
|
97
|
+
### Simple Program
|
|
98
|
+
|
|
99
|
+
```prose
|
|
100
|
+
# Functional
|
|
101
|
+
use "@alice/research" as research
|
|
102
|
+
input topic: "What to investigate"
|
|
103
|
+
|
|
104
|
+
agent helper:
|
|
105
|
+
model: sonnet
|
|
106
|
+
|
|
107
|
+
let findings = session: helper
|
|
108
|
+
prompt: "Research {topic}"
|
|
109
|
+
|
|
110
|
+
output summary = session "Summarize"
|
|
111
|
+
context: findings
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```prose
|
|
115
|
+
# Folk
|
|
116
|
+
summon "@alice/research" as research
|
|
117
|
+
given topic: "What to investigate"
|
|
118
|
+
|
|
119
|
+
sprite helper:
|
|
120
|
+
voice: sonnet
|
|
121
|
+
|
|
122
|
+
name findings = scene: helper
|
|
123
|
+
charge: "Research {topic}"
|
|
124
|
+
|
|
125
|
+
yield summary = scene "Summarize"
|
|
126
|
+
bearing: findings
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Parallel Execution
|
|
130
|
+
|
|
131
|
+
```prose
|
|
132
|
+
# Functional
|
|
133
|
+
parallel:
|
|
134
|
+
security = session "Check security"
|
|
135
|
+
perf = session "Check performance"
|
|
136
|
+
style = session "Check style"
|
|
137
|
+
|
|
138
|
+
session "Synthesize review"
|
|
139
|
+
context: { security, perf, style }
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```prose
|
|
143
|
+
# Folk
|
|
144
|
+
ensemble:
|
|
145
|
+
security = scene "Check security"
|
|
146
|
+
perf = scene "Check performance"
|
|
147
|
+
style = scene "Check style"
|
|
148
|
+
|
|
149
|
+
scene "Synthesize review"
|
|
150
|
+
bearing: { security, perf, style }
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Loop with Condition
|
|
154
|
+
|
|
155
|
+
```prose
|
|
156
|
+
# Functional
|
|
157
|
+
loop until **the code is bug-free** (max: 5):
|
|
158
|
+
session "Find and fix bugs"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```prose
|
|
162
|
+
# Folk
|
|
163
|
+
loop until **the code is bug-free** (max: 5):
|
|
164
|
+
scene "Find and fix bugs"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Error Handling
|
|
168
|
+
|
|
169
|
+
```prose
|
|
170
|
+
# Functional
|
|
171
|
+
try:
|
|
172
|
+
session "Risky operation"
|
|
173
|
+
catch as err:
|
|
174
|
+
session "Handle error"
|
|
175
|
+
context: err
|
|
176
|
+
finally:
|
|
177
|
+
session "Cleanup"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```prose
|
|
181
|
+
# Folk
|
|
182
|
+
venture:
|
|
183
|
+
scene "Risky operation"
|
|
184
|
+
should it fail as err:
|
|
185
|
+
scene "Handle error"
|
|
186
|
+
bearing: err
|
|
187
|
+
ever after:
|
|
188
|
+
scene "Cleanup"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Choice Block
|
|
192
|
+
|
|
193
|
+
```prose
|
|
194
|
+
# Functional
|
|
195
|
+
choice **the severity level**:
|
|
196
|
+
option "Critical":
|
|
197
|
+
session "Escalate immediately"
|
|
198
|
+
option "Minor":
|
|
199
|
+
session "Log for later"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```prose
|
|
203
|
+
# Folk
|
|
204
|
+
crossroads **the severity level**:
|
|
205
|
+
path "Critical":
|
|
206
|
+
scene "Escalate immediately"
|
|
207
|
+
path "Minor":
|
|
208
|
+
scene "Log for later"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Conditionals
|
|
212
|
+
|
|
213
|
+
```prose
|
|
214
|
+
# Functional
|
|
215
|
+
if **has security issues**:
|
|
216
|
+
session "Fix security"
|
|
217
|
+
elif **has performance issues**:
|
|
218
|
+
session "Optimize"
|
|
219
|
+
else:
|
|
220
|
+
session "Approve"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
```prose
|
|
224
|
+
# Folk
|
|
225
|
+
when **has security issues**:
|
|
226
|
+
scene "Fix security"
|
|
227
|
+
or when **has performance issues**:
|
|
228
|
+
scene "Optimize"
|
|
229
|
+
otherwise:
|
|
230
|
+
scene "Approve"
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Reusable Blocks
|
|
234
|
+
|
|
235
|
+
```prose
|
|
236
|
+
# Functional
|
|
237
|
+
block review(topic):
|
|
238
|
+
session "Research {topic}"
|
|
239
|
+
session "Analyze {topic}"
|
|
240
|
+
|
|
241
|
+
do review("quantum computing")
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
```prose
|
|
245
|
+
# Folk
|
|
246
|
+
act review(topic):
|
|
247
|
+
scene "Research {topic}"
|
|
248
|
+
scene "Analyze {topic}"
|
|
249
|
+
|
|
250
|
+
perform review("quantum computing")
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## The Case For Folk
|
|
256
|
+
|
|
257
|
+
1. **"OpenProse" is literary.** Prose is a literary form—why not lean in?
|
|
258
|
+
2. **Fourth wall is theatrical.** `**...**` already uses theatre terminology.
|
|
259
|
+
3. **Signals difference.** Literary terms say "this is not your typical DSL."
|
|
260
|
+
4. **Internally consistent.** Everything draws from folklore/theatre/narrative.
|
|
261
|
+
5. **Memorable.** `sprite`, `scene`, `crossroads` stick in the mind.
|
|
262
|
+
6. **Model names already fit.** `sonnet`, `opus`, `haiku` are poetic forms.
|
|
263
|
+
|
|
264
|
+
## The Case Against Folk
|
|
265
|
+
|
|
266
|
+
1. **Cultural knowledge required.** Not everyone knows folklore tropes.
|
|
267
|
+
2. **Harder to Google.** "OpenProse summon" vs "OpenProse import."
|
|
268
|
+
3. **May feel precious.** Some users want utilitarian tools.
|
|
269
|
+
4. **Translation overhead.** Mental mapping to familiar concepts.
|
|
270
|
+
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
## Alternatives Considered
|
|
274
|
+
|
|
275
|
+
### For `sprite` (ephemeral agent)
|
|
276
|
+
|
|
277
|
+
| Keyword | Origin | Rejected because |
|
|
278
|
+
| --------- | ------- | ----------------------------------------- |
|
|
279
|
+
| `spark` | English | Good but less folklore |
|
|
280
|
+
| `wisp` | English | Too insubstantial |
|
|
281
|
+
| `herald` | English | More messenger than worker |
|
|
282
|
+
| `courier` | French | Good functional alternative, not literary |
|
|
283
|
+
| `envoy` | French | Formal, diplomatic |
|
|
284
|
+
|
|
285
|
+
### For `shade` (persistent agent, if implemented)
|
|
286
|
+
|
|
287
|
+
| Keyword | Origin | Rejected because |
|
|
288
|
+
| --------- | ---------- | --------------------------------- |
|
|
289
|
+
| `daemon` | Greek/Unix | Unix "always running" connotation |
|
|
290
|
+
| `oracle` | Greek | Too "read-only" feeling |
|
|
291
|
+
| `spirit` | Latin | Too close to `sprite` |
|
|
292
|
+
| `specter` | Latin | Negative/spooky connotation |
|
|
293
|
+
| `genius` | Roman | Overloaded (smart person) |
|
|
294
|
+
|
|
295
|
+
### For `ensemble` (parallel)
|
|
296
|
+
|
|
297
|
+
| Keyword | Origin | Rejected because |
|
|
298
|
+
| --------- | ------- | ----------------------------------------- |
|
|
299
|
+
| `chorus` | Greek | Everyone speaks same thing, not different |
|
|
300
|
+
| `troupe` | French | Good alternative, slightly less clear |
|
|
301
|
+
| `company` | Theatre | Overloaded (business) |
|
|
302
|
+
|
|
303
|
+
### For `crossroads` (choice)
|
|
304
|
+
|
|
305
|
+
| Keyword | Origin | Rejected because |
|
|
306
|
+
| ------------ | ------ | ------------------------ |
|
|
307
|
+
| `fork` | Path | Too technical (git fork) |
|
|
308
|
+
| `branch` | Tree | Also too technical |
|
|
309
|
+
| `divergence` | Latin | Too abstract |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## Verdict
|
|
314
|
+
|
|
315
|
+
Preserved for benchmarking against the functional register. The functional register remains the primary path, but folk provides an interesting data point for:
|
|
316
|
+
|
|
317
|
+
1. **Learnability** — Which is easier for newcomers?
|
|
318
|
+
2. **Memorability** — Which sticks better?
|
|
319
|
+
3. **Error rates** — Which leads to fewer mistakes?
|
|
320
|
+
4. **Preference** — Which do users actually prefer?
|
|
321
|
+
|
|
322
|
+
A future experiment could present both registers and measure outcomes.
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
---
|
|
2
|
+
role: experimental
|
|
3
|
+
summary: |
|
|
4
|
+
Homeric register for OpenProse—an epic/heroic alternative keyword set.
|
|
5
|
+
Heroes, trials, fates, and glory. For benchmarking against the functional register.
|
|
6
|
+
status: draft
|
|
7
|
+
requires: prose.md
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# OpenProse Homeric Register
|
|
11
|
+
|
|
12
|
+
> **This is a skin layer.** It requires `prose.md` to be loaded first. All execution semantics, state management, and VM behavior are defined there. This file only provides keyword translations.
|
|
13
|
+
|
|
14
|
+
An alternative register for OpenProse that draws from Greek epic poetry—the Iliad, the Odyssey, and the heroic tradition. Programs become quests. Agents become heroes. Outputs become glory won.
|
|
15
|
+
|
|
16
|
+
## How to Use
|
|
17
|
+
|
|
18
|
+
1. Load `prose.md` first (execution semantics)
|
|
19
|
+
2. Load this file (keyword translations)
|
|
20
|
+
3. When parsing `.prose` files, accept Homeric keywords as aliases for functional keywords
|
|
21
|
+
4. All execution behavior remains identical—only surface syntax changes
|
|
22
|
+
|
|
23
|
+
> **Design constraint:** Still aims to be "structured but self-evident" per the language tenets—just self-evident through an epic lens.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Complete Translation Map
|
|
28
|
+
|
|
29
|
+
### Core Constructs
|
|
30
|
+
|
|
31
|
+
| Functional | Homeric | Reference |
|
|
32
|
+
| ---------- | ------- | ----------------------------- |
|
|
33
|
+
| `agent` | `hero` | The one who acts, who strives |
|
|
34
|
+
| `session` | `trial` | Each task is a labor, a test |
|
|
35
|
+
| `parallel` | `host` | An army moving as one |
|
|
36
|
+
| `block` | `book` | A division of the epic |
|
|
37
|
+
|
|
38
|
+
### Composition & Binding
|
|
39
|
+
|
|
40
|
+
| Functional | Homeric | Reference |
|
|
41
|
+
| ---------- | --------- | -------------------------------------- |
|
|
42
|
+
| `use` | `invoke` | "Sing, O Muse..." — calling upon |
|
|
43
|
+
| `input` | `omen` | Signs from the gods, the given portent |
|
|
44
|
+
| `output` | `glory` | Kleos — the glory won, what endures |
|
|
45
|
+
| `let` | `decree` | Fate declared, spoken into being |
|
|
46
|
+
| `const` | `fate` | Moira — unchangeable destiny |
|
|
47
|
+
| `context` | `tidings` | News carried by herald or messenger |
|
|
48
|
+
|
|
49
|
+
### Control Flow
|
|
50
|
+
|
|
51
|
+
| Functional | Homeric | Reference |
|
|
52
|
+
| ---------- | ------------------ | ---------------------------------------- |
|
|
53
|
+
| `repeat N` | `N labors` | The labors of Heracles |
|
|
54
|
+
| `for...in` | `for each...among` | Among the host |
|
|
55
|
+
| `loop` | `ordeal` | Repeated trial, suffering that continues |
|
|
56
|
+
| `until` | `until` | Unchanged |
|
|
57
|
+
| `while` | `while` | Unchanged |
|
|
58
|
+
| `choice` | `crossroads` | Where fates diverge |
|
|
59
|
+
| `option` | `path` | One road of many |
|
|
60
|
+
| `if` | `should` | Epic conditional |
|
|
61
|
+
| `elif` | `or should` | Continued conditional |
|
|
62
|
+
| `else` | `otherwise` | The alternative fate |
|
|
63
|
+
|
|
64
|
+
### Error Handling
|
|
65
|
+
|
|
66
|
+
| Functional | Homeric | Reference |
|
|
67
|
+
| ---------- | ------------------ | ---------------------------- |
|
|
68
|
+
| `try` | `venture` | Setting forth on the journey |
|
|
69
|
+
| `catch` | `should ruin come` | Até — divine ruin, disaster |
|
|
70
|
+
| `finally` | `in the end` | The inevitable conclusion |
|
|
71
|
+
| `throw` | `lament` | The hero's cry of anguish |
|
|
72
|
+
| `retry` | `persist` | Enduring, trying again |
|
|
73
|
+
|
|
74
|
+
### Session Properties
|
|
75
|
+
|
|
76
|
+
| Functional | Homeric | Reference |
|
|
77
|
+
| ---------- | -------- | ------------------- |
|
|
78
|
+
| `prompt` | `charge` | The quest given |
|
|
79
|
+
| `model` | `muse` | Which muse inspires |
|
|
80
|
+
|
|
81
|
+
### Unchanged
|
|
82
|
+
|
|
83
|
+
These keywords already work or are too functional to replace sensibly:
|
|
84
|
+
|
|
85
|
+
- `**...**` discretion markers — already work
|
|
86
|
+
- `until`, `while` — already work
|
|
87
|
+
- `map`, `filter`, `reduce`, `pmap` — pipeline operators
|
|
88
|
+
- `max` — constraint modifier
|
|
89
|
+
- `as` — aliasing
|
|
90
|
+
- Model names: `sonnet`, `opus`, `haiku` — already poetic
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Side-by-Side Comparison
|
|
95
|
+
|
|
96
|
+
### Simple Program
|
|
97
|
+
|
|
98
|
+
```prose
|
|
99
|
+
# Functional
|
|
100
|
+
use "@alice/research" as research
|
|
101
|
+
input topic: "What to investigate"
|
|
102
|
+
|
|
103
|
+
agent helper:
|
|
104
|
+
model: sonnet
|
|
105
|
+
|
|
106
|
+
let findings = session: helper
|
|
107
|
+
prompt: "Research {topic}"
|
|
108
|
+
|
|
109
|
+
output summary = session "Summarize"
|
|
110
|
+
context: findings
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
```prose
|
|
114
|
+
# Homeric
|
|
115
|
+
invoke "@alice/research" as research
|
|
116
|
+
omen topic: "What to investigate"
|
|
117
|
+
|
|
118
|
+
hero helper:
|
|
119
|
+
muse: sonnet
|
|
120
|
+
|
|
121
|
+
decree findings = trial: helper
|
|
122
|
+
charge: "Research {topic}"
|
|
123
|
+
|
|
124
|
+
glory summary = trial "Summarize"
|
|
125
|
+
tidings: findings
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Parallel Execution
|
|
129
|
+
|
|
130
|
+
```prose
|
|
131
|
+
# Functional
|
|
132
|
+
parallel:
|
|
133
|
+
security = session "Check security"
|
|
134
|
+
perf = session "Check performance"
|
|
135
|
+
style = session "Check style"
|
|
136
|
+
|
|
137
|
+
session "Synthesize review"
|
|
138
|
+
context: { security, perf, style }
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
```prose
|
|
142
|
+
# Homeric
|
|
143
|
+
host:
|
|
144
|
+
security = trial "Check security"
|
|
145
|
+
perf = trial "Check performance"
|
|
146
|
+
style = trial "Check style"
|
|
147
|
+
|
|
148
|
+
trial "Synthesize review"
|
|
149
|
+
tidings: { security, perf, style }
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Loop with Condition
|
|
153
|
+
|
|
154
|
+
```prose
|
|
155
|
+
# Functional
|
|
156
|
+
loop until **the code is bug-free** (max: 5):
|
|
157
|
+
session "Find and fix bugs"
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```prose
|
|
161
|
+
# Homeric
|
|
162
|
+
ordeal until **the code is bug-free** (max: 5):
|
|
163
|
+
trial "Find and fix bugs"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Error Handling
|
|
167
|
+
|
|
168
|
+
```prose
|
|
169
|
+
# Functional
|
|
170
|
+
try:
|
|
171
|
+
session "Risky operation"
|
|
172
|
+
catch as err:
|
|
173
|
+
session "Handle error"
|
|
174
|
+
context: err
|
|
175
|
+
finally:
|
|
176
|
+
session "Cleanup"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
```prose
|
|
180
|
+
# Homeric
|
|
181
|
+
venture:
|
|
182
|
+
trial "Risky operation"
|
|
183
|
+
should ruin come as err:
|
|
184
|
+
trial "Handle error"
|
|
185
|
+
tidings: err
|
|
186
|
+
in the end:
|
|
187
|
+
trial "Cleanup"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Choice Block
|
|
191
|
+
|
|
192
|
+
```prose
|
|
193
|
+
# Functional
|
|
194
|
+
choice **the severity level**:
|
|
195
|
+
option "Critical":
|
|
196
|
+
session "Escalate immediately"
|
|
197
|
+
option "Minor":
|
|
198
|
+
session "Log for later"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```prose
|
|
202
|
+
# Homeric
|
|
203
|
+
crossroads **the severity level**:
|
|
204
|
+
path "Critical":
|
|
205
|
+
trial "Escalate immediately"
|
|
206
|
+
path "Minor":
|
|
207
|
+
trial "Log for later"
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Conditionals
|
|
211
|
+
|
|
212
|
+
```prose
|
|
213
|
+
# Functional
|
|
214
|
+
if **has security issues**:
|
|
215
|
+
session "Fix security"
|
|
216
|
+
elif **has performance issues**:
|
|
217
|
+
session "Optimize"
|
|
218
|
+
else:
|
|
219
|
+
session "Approve"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
```prose
|
|
223
|
+
# Homeric
|
|
224
|
+
should **has security issues**:
|
|
225
|
+
trial "Fix security"
|
|
226
|
+
or should **has performance issues**:
|
|
227
|
+
trial "Optimize"
|
|
228
|
+
otherwise:
|
|
229
|
+
trial "Approve"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Reusable Blocks
|
|
233
|
+
|
|
234
|
+
```prose
|
|
235
|
+
# Functional
|
|
236
|
+
block review(topic):
|
|
237
|
+
session "Research {topic}"
|
|
238
|
+
session "Analyze {topic}"
|
|
239
|
+
|
|
240
|
+
do review("quantum computing")
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
```prose
|
|
244
|
+
# Homeric
|
|
245
|
+
book review(topic):
|
|
246
|
+
trial "Research {topic}"
|
|
247
|
+
trial "Analyze {topic}"
|
|
248
|
+
|
|
249
|
+
do review("quantum computing")
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Fixed Iteration
|
|
253
|
+
|
|
254
|
+
```prose
|
|
255
|
+
# Functional
|
|
256
|
+
repeat 12:
|
|
257
|
+
session "Complete task"
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```prose
|
|
261
|
+
# Homeric
|
|
262
|
+
12 labors:
|
|
263
|
+
trial "Complete task"
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Immutable Binding
|
|
267
|
+
|
|
268
|
+
```prose
|
|
269
|
+
# Functional
|
|
270
|
+
const config = { model: "opus", retries: 3 }
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
```prose
|
|
274
|
+
# Homeric
|
|
275
|
+
fate config = { muse: "opus", persist: 3 }
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## The Case For Homeric
|
|
281
|
+
|
|
282
|
+
1. **Universal recognition.** Greek epics are foundational to Western literature.
|
|
283
|
+
2. **Heroic framing.** Transforms mundane tasks into glorious trials.
|
|
284
|
+
3. **Natural fit.** Heroes face trials, receive tidings, win glory—maps cleanly to agent/session/output.
|
|
285
|
+
4. **Gravitas.** When you want programs to feel epic and consequential.
|
|
286
|
+
5. **Fate vs decree.** `const` as `fate` (unchangeable) vs `let` as `decree` (declared but mutable) is intuitive.
|
|
287
|
+
|
|
288
|
+
## The Case Against Homeric
|
|
289
|
+
|
|
290
|
+
1. **Grandiosity mismatch.** "12 labors" for a simple loop may feel overblown.
|
|
291
|
+
2. **Western-centric.** Greek epic tradition is culturally specific.
|
|
292
|
+
3. **Limited vocabulary.** Fewer distinctive terms than Borges or folk.
|
|
293
|
+
4. **Potentially silly.** Heroic language for mundane tasks risks bathos.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Key Homeric Concepts
|
|
298
|
+
|
|
299
|
+
| Term | Meaning | Used for |
|
|
300
|
+
| ------ | ----------------------------------- | ---------------------------------- |
|
|
301
|
+
| Kleos | Glory, fame that outlives you | `output` → `glory` |
|
|
302
|
+
| Moira | Fate, one's allotted portion | `const` → `fate` |
|
|
303
|
+
| Até | Divine ruin, blindness sent by gods | `catch` → `should ruin come` |
|
|
304
|
+
| Nostos | The return journey | (not used, but could be `finally`) |
|
|
305
|
+
| Xenia | Guest-friendship, hospitality | (not used) |
|
|
306
|
+
| Muse | Divine inspiration | `model` → `muse` |
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Alternatives Considered
|
|
311
|
+
|
|
312
|
+
### For `hero` (agent)
|
|
313
|
+
|
|
314
|
+
| Keyword | Rejected because |
|
|
315
|
+
| ---------- | -------------------------------------- |
|
|
316
|
+
| `champion` | More medieval than Homeric |
|
|
317
|
+
| `warrior` | Too martial, not all tasks are battles |
|
|
318
|
+
| `wanderer` | Too passive |
|
|
319
|
+
|
|
320
|
+
### For `trial` (session)
|
|
321
|
+
|
|
322
|
+
| Keyword | Rejected because |
|
|
323
|
+
| ------- | --------------------------------------- |
|
|
324
|
+
| `labor` | Good but reserved for `repeat N labors` |
|
|
325
|
+
| `quest` | More medieval/RPG |
|
|
326
|
+
| `task` | Too plain |
|
|
327
|
+
|
|
328
|
+
### For `host` (parallel)
|
|
329
|
+
|
|
330
|
+
| Keyword | Rejected because |
|
|
331
|
+
| --------- | ------------------------------ |
|
|
332
|
+
| `army` | Too specifically martial |
|
|
333
|
+
| `fleet` | Only works for naval metaphors |
|
|
334
|
+
| `phalanx` | Too technical |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Verdict
|
|
339
|
+
|
|
340
|
+
Preserved for benchmarking. The Homeric register offers gravitas and heroic framing. Best suited for:
|
|
341
|
+
|
|
342
|
+
- Programs that feel like epic undertakings
|
|
343
|
+
- Users who enjoy classical references
|
|
344
|
+
- Contexts where "glory" as output feels appropriate
|
|
345
|
+
|
|
346
|
+
May cause unintentional bathos when applied to mundane tasks.
|