Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@ npm-debug.log*
.vscode/
.idea/

# Local AI / project-harness tooling
.claude/
.codex/
.project-harness/
.ts-agent/
docs/project-harness*.md
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,33 @@
`cccc-sdk` tracks the `cccc` daemon version. Each release targets a specific
CCCC line and exposes the IPC surface available on that line.

## [0.4.33] — Unreleased

### Added

- Current Rust-daemon wrappers for group preamble, terminal cursor/resize,
Voice Secretary documents and prompts, low-level ReMe maintenance, Web Model
turns, IM bridge management, and Remote Access administration.
- `require_peer_insight` / `requirePeerInsight` support on chat workflows and
profile-marker support on actor profile operations.

### Changed

- `assert_compatible` / `assertCompatible` now probes `events_stream` as a real
operation instead of trusting the advertised capability flag. TypeScript
streaming also probes before opening the long-lived socket.
- `term_resize` / `termResize` maps to the Rust daemon's current
`terminal_resize` operation; terminal history also exposes `terminal_since`.
- The removed voice transcription IPC helper now fails locally with migration
guidance to the supported HTTP Voice Secretary endpoint.
- Refactored large client implementations into focused operation-family
mixins without changing the public client entry points.

### Tests

- Added Python and TypeScript contract coverage for the 0.4.33 operation and
argument mappings, compatibility probing, and removed-operation behavior.

## [0.4.32] — Unreleased

### Added
Expand Down
4 changes: 2 additions & 2 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[English](README.md) | [中文](README.zh-CN.md) | **日本語**

> ステータス:**CCCC Daemon IPC v1 向けの contract-first SDK**。`main` の
> ソースパッケージは CCCC 0.4.32 を対象とします。公開は別の release 手順です。
> ソースパッケージは CCCC 0.4.33 を対象とします。公開は別の release 手順です。
> 範囲は `CHANGELOG.md` と `spec/ADAPTATION_PLAN.md` を参照してください。

CCCC SDK は CCCC プラットフォーム向けの **クライアント SDK** です。
Expand Down Expand Up @@ -64,7 +64,7 @@ from cccc_sdk import CCCCClient
c = CCCCClient()
c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["groups", "send", "reply", "tracked_send", "context_sync"],
require_ops=["groups", "send", "reply", "inbox_list", "context_get", "context_sync"],
)
print("OK: daemon is compatible")
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
**English** | [中文](README.zh-CN.md) | [日本語](README.ja.md)

> Status: **contract-first SDK for CCCC daemon IPC v1**. Source packages on
> `main` target CCCC 0.4.32; publishing remains a separate release step. See
> `main` targets CCCC 0.4.33; publishing remains a separate release step. See
> `CHANGELOG.md` and `spec/ADAPTATION_PLAN.md` for exact scope.

CCCC SDK provides **client SDKs** for building applications on top of the CCCC platform.
Expand Down Expand Up @@ -65,7 +65,7 @@ from cccc_sdk import CCCCClient
c = CCCCClient()
c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["groups", "send", "reply", "tracked_send", "context_sync"],
require_ops=["groups", "send", "reply", "inbox_list", "context_get", "context_sync"],
)
print("OK: daemon is compatible")
Expand Down
4 changes: 2 additions & 2 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[English](README.md) | **中文** | [日本語](README.ja.md)

> 状态:**面向 CCCC Daemon IPC v1 的契约优先 SDK**。`main` 上的源码包面向
> CCCC 0.4.32;发布仍是独立的 release 步骤。具体范围见 `CHANGELOG.md`
> 当前源码包面向 CCCC 0.4.33;发布仍是独立的 release 步骤。具体范围见 `CHANGELOG.md`
> 与 `spec/ADAPTATION_PLAN.md`。

CCCC SDK 是一套用于 CCCC 平台的**客户端 SDK**。
Expand Down Expand Up @@ -64,7 +64,7 @@ from cccc_sdk import CCCCClient
c = CCCCClient()
c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["groups", "send", "reply", "tracked_send", "context_sync"],
require_ops=["groups", "send", "reply", "inbox_list", "context_get", "context_sync"],
)
print("OK: daemon is compatible")
Expand Down
18 changes: 9 additions & 9 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ This repo is a monorepo with two deliverables:

## Versioning policy

- SDK version tracks the supported CCCC line: currently `0.4.32`.
- RC sequence is SDK-owned (`0.4.32rcN` for Python, `0.4.32-rc.N` for npm).
- SDK version tracks the supported CCCC line: currently `0.4.33`.
- RC sequence is SDK-owned (`0.4.33rcN` for Python, `0.4.33-rc.N` for npm).
- Compatibility is enforced by contracts/capabilities/op-probing, not by matching RC numbers.

## 0) Sync specs (recommended)
Expand Down Expand Up @@ -39,8 +39,8 @@ Edit `python/pyproject.toml` (`project.version`).
### Publish RC to TestPyPI

```bash
git tag v0.4.32rcN
git push origin v0.4.32rcN
git tag v0.4.33rcN
git push origin v0.4.33rcN
```

This triggers `.github/workflows/python-publish-testpypi.yml`.
Expand All @@ -50,14 +50,14 @@ Install check:
```bash
python -m pip install --index-url https://pypi.org/simple \
--extra-index-url https://test.pypi.org/simple \
cccc-sdk==0.4.32rcN
cccc-sdk==0.4.33rcN
```

### Publish stable to PyPI

```bash
git tag v0.4.32
git push origin v0.4.32
git tag v0.4.33
git push origin v0.4.33
```

This triggers `.github/workflows/python-publish.yml`.
Expand All @@ -69,8 +69,8 @@ This triggers `.github/workflows/python-publish.yml`.
Edit `ts/package.json` (`version`).

Examples:
- RC: `0.4.32-rc.N`
- Stable: `0.4.32`
- RC: `0.4.33-rc.N`
- Stable: `0.4.33`

### Local checks

Expand Down
15 changes: 13 additions & 2 deletions python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,10 @@ python - <<'PY'
from cccc_sdk import CCCCClient

c = CCCCClient()
c.assert_compatible(require_ipc_v=1, require_capabilities={"events_stream": True})
c.assert_compatible(
require_ipc_v=1,
require_ops=["groups", "send", "reply", "tracked_send", "context_sync"],
)

groups = c.groups()
print(groups)
Expand Down Expand Up @@ -192,7 +195,7 @@ See `spec/SDK_LOCAL_MEMORY_API.md` in the repository root.

If you need an op that does not have a dedicated helper yet, use `call()` / `call_raw()`.

## CCCC 0.4.32 compatibility delta
## CCCC 0.4.33 compatibility delta

```python
# Deliberately rotate provider session metadata for Claude/Codex/Grok PTY.
Expand All @@ -210,8 +213,16 @@ page = c.terminal_history(
exported = c.group_copy_export_file(group_id="g_xxx")
preview = c.group_copy_preview_import(package_path=exported["package_path"])
copied = c.group_copy_import(package_path=exported["package_path"])

# Current Rust-daemon administration and terminal operations.
preamble = c.group_preamble_get(group_id="g_xxx")
recent = c.terminal_since(group_id="g_xxx", actor_id="reviewer", cursor=0)
c.term_resize(group_id="g_xxx", actor_id="reviewer", cols=120, rows=40)
```

`events_stream` compatibility is verified by probing the operation itself;
the SDK does not rely only on the daemon's advertised capability flag.

`group_reset` is destructive: it creates a clean replacement and removes the
old group after copying selected configuration. The explicit confirmation must
equal the source group id:
Expand Down
4 changes: 3 additions & 1 deletion python/examples/compat_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ def main() -> int:
c = CCCCClient()
info = c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=[
"groups",
"group_show",
Expand All @@ -32,6 +31,9 @@ def main() -> int:
"group_reset",
"group_copy_export_file",
"terminal_history",
"terminal_since",
"terminal_resize",
"group_preamble_get",
],
)
print(json.dumps({"ok": True, "daemon": info}, ensure_ascii=False, indent=2))
Expand Down
2 changes: 1 addition & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "cccc-sdk"
version = "0.4.32"
version = "0.4.33"
description = "Client SDK for the CCCC daemon (IPC v1)"
readme = "README.md"
requires-python = ">=3.9"
Expand Down
Loading
Loading