aicortexpy 0.2.6__tar.gz → 0.2.8__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.
- {aicortexpy-0.2.6/aicortexpy.egg-info → aicortexpy-0.2.8}/PKG-INFO +1 -1
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/__init__.py +1 -1
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/runtime_config.py +39 -10
- {aicortexpy-0.2.6 → aicortexpy-0.2.8/aicortexpy.egg-info}/PKG-INFO +1 -1
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/pyproject.toml +1 -1
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/MANIFEST.in +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/README.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortex/__init__.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortex/__main__.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/__main__.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/acp_client.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/acp_conn.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/acp_errors.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/agent_env.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/app_workdir.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/artifact_ws.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/artifacts.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/attachments.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/auto_commit.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/capabilities.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/chat_acp_pool.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/cli.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/cli_context.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/client.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/codex_config.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/__init__.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/agent_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/attachment_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/auth_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/autopilot_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/config_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/daemon_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/graph_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/issue_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/label_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/meeting_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/memory_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/project_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/repo_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/runtime_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/setup_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/skill_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/squad_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/update_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/version_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/commands/workspace_cmd.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/config.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/daemon.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/agent-memory/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-atlassian/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-graph/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-outlook/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-wxmsg/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-basics/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-bridge-cdp/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-cli-ops/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-graph/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/graphify/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/question-form/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/test-report-generator/SKILL.md +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/test-report-generator/scripts/generate_cases.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/test-report-generator/scripts/generate_report.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/design_seed.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/diskusage.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/execenv.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/gc.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/handoff_bundle.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/health.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/id_resolve.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/local_skills.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/models.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/oauth_login.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/openclaw_config.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/output.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/permission.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/pinned_workdir.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/platform_client.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/platform_info.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/poisoned.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/process.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/procutil.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/prompt.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/repo.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/runner.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/sandbox.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/security.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/stream.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/terminal.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/tunnel.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/wakeup.py +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy.egg-info/SOURCES.txt +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy.egg-info/dependency_links.txt +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy.egg-info/entry_points.txt +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy.egg-info/requires.txt +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy.egg-info/top_level.txt +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/scripts/aicortex +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/scripts/aicortex.cmd +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/setup.cfg +0 -0
- {aicortexpy-0.2.6 → aicortexpy-0.2.8}/tests/test_app_workdir.py +0 -0
|
@@ -43,6 +43,7 @@ class TaskContextForEnv:
|
|
|
43
43
|
project_title: str = ""
|
|
44
44
|
project_prompt: str = ""
|
|
45
45
|
project_resources: list[dict[str, Any]] = field(default_factory=list)
|
|
46
|
+
project_workdir: str = ""
|
|
46
47
|
repos: list[dict[str, Any]] = field(default_factory=list)
|
|
47
48
|
is_squad_leader: bool = False
|
|
48
49
|
memory_markdown: str = ""
|
|
@@ -101,6 +102,9 @@ def task_context_from_task(task: Any) -> TaskContextForEnv:
|
|
|
101
102
|
|
|
102
103
|
|
|
103
104
|
def inject_runtime_config(work_dir: Path, provider: str, ctx: TaskContextForEnv) -> str:
|
|
105
|
+
# Prefer telling agents the real cwd over the /workspace/{id}/ alias.
|
|
106
|
+
if ctx.project_id and not ctx.project_workdir.strip() and str(work_dir).strip():
|
|
107
|
+
ctx.project_workdir = str(work_dir)
|
|
104
108
|
content = build_meta_skill_content(provider, ctx)
|
|
105
109
|
target: Path | None
|
|
106
110
|
if provider == "claude":
|
|
@@ -281,11 +285,40 @@ def _format_project_resource(r: dict[str, Any]) -> str:
|
|
|
281
285
|
return out
|
|
282
286
|
|
|
283
287
|
|
|
284
|
-
def
|
|
288
|
+
def _project_local_path(ctx: TaskContextForEnv) -> str:
|
|
289
|
+
"""Resolved local_path for this claim (by_daemon already narrowed)."""
|
|
285
290
|
for r in ctx.project_resources:
|
|
286
|
-
if str(r.get("resource_type") or r.get("type") or "")
|
|
287
|
-
|
|
288
|
-
|
|
291
|
+
if str(r.get("resource_type") or r.get("type") or "") != "local_path":
|
|
292
|
+
continue
|
|
293
|
+
ref = r.get("resource_ref") or r.get("ref") or {}
|
|
294
|
+
if isinstance(ref, str):
|
|
295
|
+
try:
|
|
296
|
+
ref = json.loads(ref)
|
|
297
|
+
except json.JSONDecodeError:
|
|
298
|
+
ref = {}
|
|
299
|
+
if not isinstance(ref, dict):
|
|
300
|
+
continue
|
|
301
|
+
path = str(ref.get("path") or "").strip()
|
|
302
|
+
if path:
|
|
303
|
+
return path
|
|
304
|
+
return ""
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
def _project_has_local_path(ctx: TaskContextForEnv) -> bool:
|
|
308
|
+
return bool(_project_local_path(ctx))
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def _project_workdir_line(ctx: TaskContextForEnv) -> str:
|
|
312
|
+
"""Prefer resolved local_path, then real process cwd, then logical alias."""
|
|
313
|
+
path = _project_local_path(ctx)
|
|
314
|
+
if path:
|
|
315
|
+
return f"Project working directory: `{path}`\n\n"
|
|
316
|
+
workdir = (ctx.project_workdir or "").strip()
|
|
317
|
+
if workdir:
|
|
318
|
+
return f"Project working directory: `{workdir}`\n\n"
|
|
319
|
+
if ctx.project_id:
|
|
320
|
+
return f"Project working directory (logical): `/workspace/{ctx.project_id}/`\n\n"
|
|
321
|
+
return ""
|
|
289
322
|
|
|
290
323
|
|
|
291
324
|
def _has_project_context(ctx: TaskContextForEnv) -> bool:
|
|
@@ -321,8 +354,7 @@ def _project_context_section(ctx: TaskContextForEnv) -> str:
|
|
|
321
354
|
parts = ["## Project Context\n\n"]
|
|
322
355
|
if ctx.project_title:
|
|
323
356
|
parts.append(f"This {scope} belongs to **{ctx.project_title}**.\n\n")
|
|
324
|
-
|
|
325
|
-
parts.append(f"Project working directory (logical): `/workspace/{ctx.project_id}/`\n\n")
|
|
357
|
+
parts.append(_project_workdir_line(ctx))
|
|
326
358
|
if ctx.project_resources:
|
|
327
359
|
parts.append("Project resources (also at `.aicortex/project/resources.json`):\n\n")
|
|
328
360
|
for r in ctx.project_resources:
|
|
@@ -564,10 +596,7 @@ def _design_studio_runtime(provider: str, ctx: TaskContextForEnv) -> str:
|
|
|
564
596
|
parts.append("## Design project context\n\n")
|
|
565
597
|
if ctx.project_title:
|
|
566
598
|
parts.append(f"This design session belongs to **{ctx.project_title}**.\n\n")
|
|
567
|
-
|
|
568
|
-
parts.append(
|
|
569
|
-
f"Project working directory (logical): `/workspace/{ctx.project_id}/`\n\n"
|
|
570
|
-
)
|
|
599
|
+
parts.append(_project_workdir_line(ctx))
|
|
571
600
|
if ctx.project_resources:
|
|
572
601
|
parts.append("Project resources (tokens/branding only):\n\n")
|
|
573
602
|
for r in ctx.project_resources:
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
# PyPI + import + console script entry for full Go CLI replacement.
|
|
7
7
|
name = "aicortexpy"
|
|
8
|
-
version = "0.2.
|
|
8
|
+
version = "0.2.8"
|
|
9
9
|
description = "AICortex Python CLI and local agent runtime daemon (Go CLI compatible)"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
license = { text = "Apache-2.0" }
|
|
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
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-atlassian/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-graph/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-outlook/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicorkit-wxmsg/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-basics/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-bridge-cdp/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-cli-ops/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/aicortex-graph/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aicortexpy-0.2.6 → aicortexpy-0.2.8}/aicortexpy/data/default_skills/test-report-generator/SKILL.md
RENAMED
|
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
|