ws-aitoolkit 0.1.2__tar.gz → 0.1.3__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.
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/PKG-INFO +1 -1
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/pyproject.toml +1 -1
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/pyproject.toml.orig +1 -1
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/_build.py +2 -2
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/extcmd.py +5 -2
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/LICENSE +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/NOTICE +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/README.md +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/__main__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/adapters/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/adapters/claude_code.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/adapters/opencode.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/adapters/opencode_plugin.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/approvals.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/broker.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/canary.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/cli.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/config_cmd.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/devices.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/doctor.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/eval.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/evalstats.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/frontmatter.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/gate.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/globals.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/_paths.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/bulk_staging.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/claims.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/record_calls.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/session_context.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/skill_gate.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/spawn_cap.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/syntax_check.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/guards/test_weakening.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/install.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/jobs.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/jsonl.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/mcp_server.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/memory.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/modules.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/notes.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/notesdetect.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/osinfo.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/output.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/policy.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/profile.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/rating.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/_schedule.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/anthropic.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/commands.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/launchd.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/markdown_git.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/notify_none.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/ntfy.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/opencode.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/restic.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/secrets_env.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/secrets_ws.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/sops_age.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/roles/systemd.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/run.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/runrecord.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/runschema.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/sandbox.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/secrets.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/selfcmd.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/session.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/setup_ui/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/setup_ui/brand.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/setup_ui/flow.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/setup_ui/inline.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/setup_ui/web.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/align.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/checkpoint.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/dataviz.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/resume.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/ship.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/skills/taste_gate.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/status.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/testing/__init__.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/testing/mockprovider.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/testing/scenarios.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/usage.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/userconfig.py +0 -0
- {ws_aitoolkit-0.1.2 → ws_aitoolkit-0.1.3}/src/ws/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Written by the release workflow before uv build; absent in a checkout."""
|
|
2
2
|
|
|
3
|
-
git_sha = "
|
|
3
|
+
git_sha = "a54b1d8ef6dfaffdb74373c85756eb680677fb18"
|
|
4
4
|
dirty = False
|
|
5
|
-
build_date = "2026-11-
|
|
5
|
+
build_date = "2026-11-01T09:04:38Z"
|
|
6
6
|
source = "release"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Precedence, first match wins: a built-in command; `ws-<word>` on PATH (a word is `[a-z][a-z0-9-]{0,40}`); the
|
|
4
4
|
profile's `[cli] fallback`; the usual usage error with "did you mean". An external gets the arguments after its word,
|
|
5
|
-
`WS_OUTPUT=json` when `--json` was given, and `-C PATH` as its working folder (the way git runs `git-<word>`). The
|
|
5
|
+
`--json` (before any `--`) and `WS_OUTPUT=json` when `--json` was given, and `-C PATH` as its working folder (the way git runs `git-<word>`). The
|
|
6
6
|
fallback gets the whole original argument list, leading flags and the empty list (a bare `ws`) included, and runs with
|
|
7
7
|
`WS_FALLBACK=1`; a run that already has it set is not handed on again. The fallback is an absolute path (or `~/...`) to a
|
|
8
8
|
file that is yours, executable and closed to other writers, the same test a job file passes, in a folder that other
|
|
@@ -177,9 +177,12 @@ def plan(
|
|
|
177
177
|
found = find_external(first, env)
|
|
178
178
|
if found:
|
|
179
179
|
child = dict(env)
|
|
180
|
+
args = rest[1:]
|
|
180
181
|
if g.json:
|
|
181
182
|
child["WS_OUTPUT"] = "json"
|
|
182
|
-
|
|
183
|
+
cut = args.index("--") if "--" in args else len(args)
|
|
184
|
+
args = [*args[:cut], "--json", *args[cut:]] # passed on as well: most programs read the flag
|
|
185
|
+
return Launch(found, args, child)
|
|
183
186
|
elif first is not None and first.split("=")[0] in flags:
|
|
184
187
|
return None
|
|
185
188
|
try:
|
|
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
|