abelworkflow 1.1.3 → 1.2.0

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.
Files changed (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -29
  3. package/extensions/gpt-responses-compat.ts +213 -0
  4. package/extensions/k2think-compat.ts +40 -0
  5. package/lib/cli/args.mjs +5 -19
  6. package/lib/cli/main.mjs +105 -72
  7. package/lib/cli/prompts.mjs +9 -2
  8. package/lib/config/dotenv.mjs +1 -1
  9. package/lib/config/jsonc.mjs +1 -1
  10. package/lib/config/store.mjs +197 -45
  11. package/lib/config/toml.mjs +147 -453
  12. package/lib/installer/assets.mjs +67 -45
  13. package/lib/installer/install.mjs +202 -45
  14. package/lib/installer/links.mjs +124 -101
  15. package/lib/installer/lock.mjs +82 -0
  16. package/lib/installer/state.mjs +14 -21
  17. package/lib/paths.mjs +9 -9
  18. package/lib/providers/claude.mjs +58 -114
  19. package/lib/providers/codex.mjs +101 -198
  20. package/lib/providers/pi.mjs +331 -497
  21. package/lib/providers/skills.mjs +88 -68
  22. package/lib/providers/url.mjs +35 -0
  23. package/lib/templates/workflow/commands/abel-design.md +23 -161
  24. package/lib/templates/workflow/commands/abel-diagnose.md +30 -56
  25. package/lib/templates/workflow/commands/abel-implement.md +30 -150
  26. package/lib/templates/workflow/commands/abel-init.md +1 -1
  27. package/lib/tools/cli-installer.mjs +29 -190
  28. package/package.json +7 -9
  29. package/skills/context7-auto-research/context7-api.cjs +75 -17
  30. package/skills/dev-browser/SKILL.md +15 -1
  31. package/skills/dev-browser/dist/scripts/start.d.ts +0 -1
  32. package/skills/dev-browser/dist/scripts/start.js +8 -36
  33. package/skills/dev-browser/dist/src/client.d.ts +3 -4
  34. package/skills/dev-browser/dist/src/client.js +117 -117
  35. package/skills/dev-browser/dist/src/entrypoint.d.ts +1 -1
  36. package/skills/dev-browser/dist/src/entrypoint.js +38 -31
  37. package/skills/dev-browser/dist/src/index.d.ts +0 -1
  38. package/skills/dev-browser/dist/src/index.js +0 -1
  39. package/skills/dev-browser/dist/src/page-api.d.ts +0 -1
  40. package/skills/dev-browser/dist/src/page-api.js +0 -1
  41. package/skills/dev-browser/dist/src/relay.d.ts +0 -1
  42. package/skills/dev-browser/dist/src/relay.js +53 -7
  43. package/skills/dev-browser/dist/src/runtime.d.ts +3 -14
  44. package/skills/dev-browser/dist/src/runtime.js +5 -15
  45. package/skills/dev-browser/dist/src/snapshot/browser-script.d.ts +0 -1
  46. package/skills/dev-browser/dist/src/snapshot/browser-script.js +0 -1
  47. package/skills/dev-browser/dist/src/snapshot/index.d.ts +0 -1
  48. package/skills/dev-browser/dist/src/snapshot/index.js +0 -1
  49. package/skills/dev-browser/dist/src/snapshot/inject.d.ts +0 -1
  50. package/skills/dev-browser/dist/src/snapshot/inject.js +0 -1
  51. package/skills/dev-browser/dist/src/standalone.d.ts +0 -1
  52. package/skills/dev-browser/dist/src/standalone.js +2 -3
  53. package/skills/dev-browser/dist/src/startup.d.ts +3 -12
  54. package/skills/dev-browser/dist/src/startup.js +6 -10
  55. package/skills/dev-browser/dist/src/target-registry.d.ts +0 -1
  56. package/skills/dev-browser/dist/src/target-registry.js +0 -1
  57. package/skills/dev-browser/dist/src/types.d.ts +0 -1
  58. package/skills/dev-browser/dist/src/types.js +0 -1
  59. package/skills/dev-browser/package-lock.json +1 -1
  60. package/skills/dev-browser/package.json +2 -2
  61. package/skills/grok-search/.env.example +1 -1
  62. package/skills/grok-search/SKILL.md +13 -16
  63. package/skills/grok-search/scripts/_dotenv.py +1 -1
  64. package/skills/grok-search/scripts/groksearch_cli.py +271 -195
  65. package/skills/time/SKILL.md +5 -2
  66. package/skills/time/scripts/time_cli.py +61 -22
  67. package/extensions/pi-gpt-responses-compat/index.ts +0 -25
  68. package/lib/templates/codex/config-base.toml +0 -103
  69. package/skills/dev-browser/dist/scripts/start.d.ts.map +0 -1
  70. package/skills/dev-browser/dist/scripts/start.js.map +0 -1
  71. package/skills/dev-browser/dist/src/client.d.ts.map +0 -1
  72. package/skills/dev-browser/dist/src/client.js.map +0 -1
  73. package/skills/dev-browser/dist/src/entrypoint.d.ts.map +0 -1
  74. package/skills/dev-browser/dist/src/entrypoint.js.map +0 -1
  75. package/skills/dev-browser/dist/src/index.d.ts.map +0 -1
  76. package/skills/dev-browser/dist/src/index.js.map +0 -1
  77. package/skills/dev-browser/dist/src/page-api.d.ts.map +0 -1
  78. package/skills/dev-browser/dist/src/page-api.js.map +0 -1
  79. package/skills/dev-browser/dist/src/relay.d.ts.map +0 -1
  80. package/skills/dev-browser/dist/src/relay.js.map +0 -1
  81. package/skills/dev-browser/dist/src/runtime.d.ts.map +0 -1
  82. package/skills/dev-browser/dist/src/runtime.js.map +0 -1
  83. package/skills/dev-browser/dist/src/snapshot/browser-script.d.ts.map +0 -1
  84. package/skills/dev-browser/dist/src/snapshot/browser-script.js.map +0 -1
  85. package/skills/dev-browser/dist/src/snapshot/index.d.ts.map +0 -1
  86. package/skills/dev-browser/dist/src/snapshot/index.js.map +0 -1
  87. package/skills/dev-browser/dist/src/snapshot/inject.d.ts.map +0 -1
  88. package/skills/dev-browser/dist/src/snapshot/inject.js.map +0 -1
  89. package/skills/dev-browser/dist/src/standalone.d.ts.map +0 -1
  90. package/skills/dev-browser/dist/src/standalone.js.map +0 -1
  91. package/skills/dev-browser/dist/src/startup.d.ts.map +0 -1
  92. package/skills/dev-browser/dist/src/startup.js.map +0 -1
  93. package/skills/dev-browser/dist/src/target-registry.d.ts.map +0 -1
  94. package/skills/dev-browser/dist/src/target-registry.js.map +0 -1
  95. package/skills/dev-browser/dist/src/types.d.ts.map +0 -1
  96. package/skills/dev-browser/dist/src/types.js.map +0 -1
  97. package/skills/grok-search/gitignore.template +0 -4
  98. package/skills/grok-search/scripts/groksearch_entry.py +0 -131
@@ -1,131 +0,0 @@
1
- #!/usr/bin/env python3
2
- """Cross-platform bootstrap entrypoint for GrokSearch CLI."""
3
-
4
- import os
5
- import shutil
6
- import subprocess
7
- import sys
8
- from pathlib import Path
9
- from typing import Optional
10
-
11
- from _dotenv import load_dotenv
12
-
13
-
14
- ROOT_DIR = Path(__file__).resolve().parent.parent
15
- REQ_FILE = ROOT_DIR / "requirements.txt"
16
- CLI_PY = ROOT_DIR / "scripts" / "groksearch_cli.py"
17
-
18
-
19
- def venv_dir() -> Path:
20
- configured = os.environ.get("GROKSEARCH_VENV_DIR")
21
- if not configured:
22
- return ROOT_DIR / ".venv"
23
- dir_path = Path(configured).expanduser()
24
- if dir_path.is_absolute():
25
- return dir_path
26
- return ROOT_DIR / dir_path
27
-
28
-
29
- def venv_python() -> Optional[Path]:
30
- dir_path = venv_dir()
31
- candidates = []
32
- if sys.platform == "win32":
33
- candidates.extend(
34
- [
35
- dir_path / "Scripts" / "python.exe",
36
- dir_path / "Scripts" / "python",
37
- ]
38
- )
39
- candidates.append(dir_path / "bin" / "python")
40
- for candidate in candidates:
41
- if candidate.is_file():
42
- return candidate
43
- return None
44
-
45
-
46
- def python_spec() -> Optional[str]:
47
- for name in ("GROKSEARCH_PYTHON", "AGENTS_SKILLS_PYTHON"):
48
- value = os.environ.get(name)
49
- if value:
50
- return value
51
- return None
52
-
53
-
54
- def has_uv() -> bool:
55
- return shutil.which("uv") is not None
56
-
57
-
58
- def find_system_python() -> Optional[str]:
59
- env_python = os.environ.get("AGENTS_SKILLS_PYTHON")
60
- if env_python and Path(env_python).is_file():
61
- return env_python
62
- if sys.executable and Path(sys.executable).is_file():
63
- return sys.executable
64
- for command in ("python3", "python"):
65
- found = shutil.which(command)
66
- if found:
67
- return found
68
- return None
69
-
70
-
71
- def create_venv() -> None:
72
- dir_path = venv_dir()
73
- if has_uv():
74
- command = ["uv", "venv"]
75
- spec = python_spec()
76
- if spec:
77
- command.extend(["--python", spec])
78
- command.append(str(dir_path))
79
- subprocess.run(command, check=True)
80
- return
81
- python_bin = find_system_python()
82
- if not python_bin:
83
- print("Error: No usable uv or python found. Cannot create virtual environment.", file=sys.stderr)
84
- sys.exit(1)
85
- subprocess.run([python_bin, "-m", "venv", str(dir_path)], check=True)
86
-
87
-
88
- def install_deps(python_bin: Path) -> None:
89
- check = subprocess.run(
90
- [str(python_bin), "-c", "import httpx, tenacity"],
91
- stdout=subprocess.DEVNULL,
92
- stderr=subprocess.DEVNULL,
93
- )
94
- if check.returncode == 0:
95
- return
96
- if has_uv() and REQ_FILE.is_file():
97
- subprocess.run(["uv", "pip", "install", "--python", str(python_bin), "-r", str(REQ_FILE)], check=True)
98
- return
99
- if REQ_FILE.is_file():
100
- subprocess.run([str(python_bin), "-m", "pip", "install", "-r", str(REQ_FILE)], check=True)
101
- return
102
- subprocess.run([str(python_bin), "-m", "pip", "install", "httpx", "tenacity"], check=True)
103
-
104
-
105
- def validate_venv_dir() -> None:
106
- dir_path = venv_dir()
107
- if dir_path.exists() and not dir_path.is_dir():
108
- print(f"Error: {dir_path} exists but is not a directory.", file=sys.stderr)
109
- sys.exit(1)
110
- if dir_path.is_dir() and not (dir_path / "pyvenv.cfg").exists() and venv_python() is None:
111
- print(f"Error: {dir_path} exists but is not a valid venv.", file=sys.stderr)
112
- sys.exit(1)
113
-
114
-
115
- def main() -> None:
116
- load_dotenv()
117
- validate_venv_dir()
118
- python_bin = venv_python()
119
- if python_bin is None:
120
- create_venv()
121
- python_bin = venv_python()
122
- if python_bin is None:
123
- print("Error: Failed to locate python in venv after creation.", file=sys.stderr)
124
- sys.exit(1)
125
- install_deps(python_bin)
126
- result = subprocess.run([str(python_bin), str(CLI_PY)] + sys.argv[1:])
127
- sys.exit(result.returncode)
128
-
129
-
130
- if __name__ == "__main__":
131
- main()