aicortexpy 0.2.3__tar.gz → 0.2.5__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.3/aicortexpy.egg-info → aicortexpy-0.2.5}/PKG-INFO +1 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/__init__.py +1 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/acp_conn.py +35 -5
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/capabilities.py +1 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/cli.py +10 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/config.py +4 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/daemon.py +0 -7
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/runner.py +9 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5/aicortexpy.egg-info}/PKG-INFO +1 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/pyproject.toml +1 -1
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/MANIFEST.in +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/README.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortex/__init__.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortex/__main__.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/__main__.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/acp_client.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/acp_errors.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/agent_env.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/app_workdir.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/artifact_ws.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/artifacts.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/attachments.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/auto_commit.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/chat_acp_pool.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/cli_context.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/client.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/codex_config.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/__init__.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/agent_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/attachment_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/auth_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/autopilot_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/config_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/daemon_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/graph_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/issue_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/label_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/meeting_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/memory_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/project_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/repo_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/runtime_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/setup_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/skill_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/squad_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/update_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/version_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/commands/workspace_cmd.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/agent-memory/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-atlassian/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-graph/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-outlook/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-wxmsg/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-basics/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-bridge-cdp/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-cli-ops/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-graph/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/graphify/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/question-form/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/test-report-generator/SKILL.md +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/test-report-generator/scripts/generate_cases.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/test-report-generator/scripts/generate_report.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/design_seed.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/diskusage.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/execenv.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/gc.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/handoff_bundle.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/health.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/id_resolve.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/local_skills.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/models.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/oauth_login.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/openclaw_config.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/output.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/permission.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/pinned_workdir.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/platform_client.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/platform_info.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/poisoned.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/process.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/procutil.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/prompt.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/repo.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/runtime_config.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/sandbox.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/security.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/stream.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/terminal.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/tunnel.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/wakeup.py +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy.egg-info/SOURCES.txt +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy.egg-info/dependency_links.txt +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy.egg-info/entry_points.txt +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy.egg-info/requires.txt +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy.egg-info/top_level.txt +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/scripts/aicortex +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/scripts/aicortex.cmd +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/setup.cfg +0 -0
- {aicortexpy-0.2.3 → aicortexpy-0.2.5}/tests/test_app_workdir.py +0 -0
|
@@ -37,9 +37,20 @@ HANDSHAKE_TIMEOUT = 120.0
|
|
|
37
37
|
PROMPT_TIMEOUT = 20 * 60.0
|
|
38
38
|
STDOUT_MAX_LINE = 10 * 1024 * 1024 # match Go scanner max token
|
|
39
39
|
|
|
40
|
+
# UI / agent form may send these; ACP session/set_model rejects them (e.g. Cursor -32602).
|
|
41
|
+
_ACP_MODEL_SENTINELS = frozenset({"", "auto", "default", "none"})
|
|
42
|
+
|
|
40
43
|
MessageCB = Callable[[dict[str, Any]], None]
|
|
41
44
|
|
|
42
45
|
|
|
46
|
+
def normalize_acp_model(model: str | None) -> str:
|
|
47
|
+
"""Return a concrete model id for ACP, or '' to keep the agent default."""
|
|
48
|
+
m = (model or "").strip()
|
|
49
|
+
if m.lower() in _ACP_MODEL_SENTINELS:
|
|
50
|
+
return ""
|
|
51
|
+
return m
|
|
52
|
+
|
|
53
|
+
|
|
43
54
|
@dataclass
|
|
44
55
|
class ACPPromptResult:
|
|
45
56
|
status: str
|
|
@@ -533,26 +544,43 @@ class _BaseACPConn:
|
|
|
533
544
|
raise RuntimeError(f"{self.provider} acp session/new returned no session ID")
|
|
534
545
|
self._session_id = session_id
|
|
535
546
|
self._client.session_id = session_id
|
|
536
|
-
|
|
547
|
+
# UI may send sentinel "auto"/"default"; ACP session/set_model rejects those.
|
|
548
|
+
effective_model = normalize_acp_model(model)
|
|
549
|
+
self._model = effective_model
|
|
537
550
|
log.info("%s acp session ready session_id=%s", self.provider, session_id)
|
|
538
|
-
if not
|
|
551
|
+
if not effective_model:
|
|
552
|
+
if (model or "").strip():
|
|
553
|
+
log.info(
|
|
554
|
+
"%s acp skipping set_model for sentinel model=%r",
|
|
555
|
+
self.provider,
|
|
556
|
+
model,
|
|
557
|
+
)
|
|
539
558
|
return
|
|
540
559
|
try:
|
|
541
560
|
if self.model_via_config_option:
|
|
542
561
|
self._client.request(
|
|
543
562
|
"session/set_config_option",
|
|
544
|
-
{
|
|
563
|
+
{
|
|
564
|
+
"sessionId": session_id,
|
|
565
|
+
"configId": "model",
|
|
566
|
+
"value": effective_model,
|
|
567
|
+
},
|
|
545
568
|
timeout=handshake_timeout,
|
|
546
569
|
)
|
|
547
570
|
else:
|
|
548
571
|
self._client.request(
|
|
549
572
|
"session/set_model",
|
|
550
|
-
{"sessionId": session_id, "modelId":
|
|
573
|
+
{"sessionId": session_id, "modelId": effective_model},
|
|
551
574
|
timeout=handshake_timeout,
|
|
552
575
|
)
|
|
553
576
|
except Exception as e:
|
|
554
577
|
if self.soft_set_model:
|
|
555
|
-
log.
|
|
578
|
+
log.warning(
|
|
579
|
+
"%s acp set_model soft-failed model=%r: %s (continuing with agent default)",
|
|
580
|
+
self.provider,
|
|
581
|
+
effective_model,
|
|
582
|
+
e,
|
|
583
|
+
)
|
|
556
584
|
return
|
|
557
585
|
self.close()
|
|
558
586
|
raise RuntimeError(f"{self.provider} acp set model failed: {e}") from e
|
|
@@ -561,6 +589,8 @@ class _BaseACPConn:
|
|
|
561
589
|
class CursorACPConn(_BaseACPConn):
|
|
562
590
|
provider = "cursor"
|
|
563
591
|
require_set_model = True
|
|
592
|
+
# Prefer pooled chat over hard-failing on an unknown model id.
|
|
593
|
+
soft_set_model = True
|
|
564
594
|
|
|
565
595
|
@classmethod
|
|
566
596
|
def open(
|
|
@@ -37,7 +37,7 @@ CAPABILITIES: list[Capability] = [
|
|
|
37
37
|
Capability("repo_cache", "Bare cache + worktree checkout", "repocache/", "done", "per-ws bare + lock + worktree + co-authored hook"),
|
|
38
38
|
Capability("pinned_workdir", "Pinned project workdir", "pinned_workdir.go", "done", "projects/<id> stages"),
|
|
39
39
|
Capability("attachments", "Materialize attachments", "materialize_attachments.go", "done", "_incoming/"),
|
|
40
|
-
Capability("auto_commit", "Auto-commit agent changes", "auto_commit.go", "
|
|
40
|
+
Capability("auto_commit", "Auto-commit agent changes", "auto_commit.go", "skipped", "disabled — user decides when to commit"),
|
|
41
41
|
Capability("artifacts", "Artifacts metadata + WS browse/chunk", "artifact/", "done", "scan metadata + wakeup artifact ops"),
|
|
42
42
|
Capability("agent_claude", "Claude stream-json backend", "claude.go", "done", "stream-json + resume + mcp-config"),
|
|
43
43
|
Capability("agent_codex", "Codex exec backend", "codex.go", "done", "codex exec + CODEX_HOME + semantic inactivity"),
|
|
@@ -63,11 +63,21 @@ def _setup_logging(
|
|
|
63
63
|
level = logging.INFO
|
|
64
64
|
else:
|
|
65
65
|
level = logging.WARNING
|
|
66
|
+
# Windows consoles are often GBK; force UTF-8 so agent names like 小政 log cleanly.
|
|
67
|
+
for stream in (sys.stdout, sys.stderr):
|
|
68
|
+
reconf = getattr(stream, "reconfigure", None)
|
|
69
|
+
if callable(reconf):
|
|
70
|
+
try:
|
|
71
|
+
reconf(encoding="utf-8", errors="replace")
|
|
72
|
+
except Exception:
|
|
73
|
+
pass
|
|
66
74
|
logging.basicConfig(
|
|
67
75
|
level=level,
|
|
68
76
|
format="%(asctime)s %(levelname)s %(name)s: %(message)s",
|
|
69
77
|
datefmt="%H:%M:%S",
|
|
70
78
|
force=True,
|
|
79
|
+
encoding="utf-8",
|
|
80
|
+
errors="replace",
|
|
71
81
|
)
|
|
72
82
|
|
|
73
83
|
|
|
@@ -12,6 +12,8 @@ from dataclasses import dataclass, field
|
|
|
12
12
|
from pathlib import Path
|
|
13
13
|
from typing import Any
|
|
14
14
|
|
|
15
|
+
from . import __version__ as _PKG_VERSION
|
|
16
|
+
|
|
15
17
|
|
|
16
18
|
DEFAULT_SERVER_URL = "http://localhost:8080"
|
|
17
19
|
DEFAULT_POLL_INTERVAL = 30.0
|
|
@@ -27,7 +29,8 @@ DEFAULT_CHAT_ACP_IDLE_TIMEOUT = 300.0
|
|
|
27
29
|
DEFAULT_CHAT_ACP_MAX_CONNECTIONS = 50
|
|
28
30
|
DEFAULT_AGENT_IDLE_WATCHDOG = 300.0 # 5m; 0 disables
|
|
29
31
|
DEFAULT_CODEX_SEMANTIC_INACTIVITY = 600.0 # 10m; 0 disables
|
|
30
|
-
|
|
32
|
+
|
|
33
|
+
CLI_VERSION = f"{_PKG_VERSION}-python"
|
|
31
34
|
|
|
32
35
|
# provider -> (env path override, default binary name, model env)
|
|
33
36
|
# Keep in sync with server/internal/daemon/config.go probe list.
|
|
@@ -16,7 +16,6 @@ from .app_workdir import (
|
|
|
16
16
|
read_app_index_html,
|
|
17
17
|
)
|
|
18
18
|
from .artifacts import report_issue_artifacts
|
|
19
|
-
from .auto_commit import auto_commit_and_push
|
|
20
19
|
from .chat_acp_pool import ChatACPPool
|
|
21
20
|
from .client import APIError, DaemonClient, Task, is_not_found
|
|
22
21
|
from .config import Config, as_register_runtimes, detect_local_timezone
|
|
@@ -646,12 +645,6 @@ class Daemon:
|
|
|
646
645
|
fail_reason = poisoned_reason
|
|
647
646
|
|
|
648
647
|
if result.ok:
|
|
649
|
-
try:
|
|
650
|
-
auto_commit_and_push(
|
|
651
|
-
result.work_dir, task.id, str(agent_name)
|
|
652
|
-
)
|
|
653
|
-
except Exception as e:
|
|
654
|
-
log.warning("auto-commit: %s", e)
|
|
655
648
|
if task.issue_id:
|
|
656
649
|
try:
|
|
657
650
|
report_issue_artifacts(
|
|
@@ -432,7 +432,10 @@ def run_agent(
|
|
|
432
432
|
cleanup_plan(plan)
|
|
433
433
|
_cleanup_mcp_tmp(mcp_tmp)
|
|
434
434
|
return acp_result
|
|
435
|
-
log.warning(
|
|
435
|
+
log.warning(
|
|
436
|
+
"%s chat acp pool failed, falling back to one-shot backend",
|
|
437
|
+
provider,
|
|
438
|
+
)
|
|
436
439
|
|
|
437
440
|
# Non-chat ACP providers (kiro/hermes/kimi/dsh) — always JSON-RPC, not argv prompt.
|
|
438
441
|
if provider in ACP_ONESHOT_PROVIDERS:
|
|
@@ -929,6 +932,11 @@ def _run_via_acp_pool(
|
|
|
929
932
|
|
|
930
933
|
# Open failed → caller falls back to one-shot.
|
|
931
934
|
if result.status == "failed" and "chat acp open failed" in (result.error or ""):
|
|
935
|
+
log.warning(
|
|
936
|
+
"%s chat acp open failed (will fall back): %s",
|
|
937
|
+
provider,
|
|
938
|
+
result.error,
|
|
939
|
+
)
|
|
932
940
|
return None
|
|
933
941
|
|
|
934
942
|
# Resume failed before a session was established → retry fresh once.
|
|
@@ -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.5"
|
|
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
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-atlassian/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-graph/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-outlook/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicorkit-wxmsg/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-basics/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-bridge-cdp/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-cli-ops/SKILL.md
RENAMED
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/aicortexpy/data/default_skills/aicortex-graph/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aicortexpy-0.2.3 → aicortexpy-0.2.5}/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
|