Skip to content
Closed
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
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,68 @@
`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] — Aligned with Rust CCCC 0.4.33

### Added

- Group preamble get/set/reset helpers.
- Cursor-based terminal history/since helpers and Rust `terminal_resize`
dispatch compatibility.
- Current Voice Secretary prompt refinement, document, transcript, and request
argument mappings.
- `insight` and `require_peer_insight` on send, reply, cross-group, and tracked
message helpers.

### Fixed

- `assertCompatible` / `assert_compatible` now probe `events_stream` instead of
trusting the advertised capability alone.
- TypeScript `sendAndWaitForReply` verifies the streaming upgrade before it
creates a message side effect.
- Removed `assistant_voice_transcribe` IPC usage now fails locally with a clear
HTTP Voice Secretary migration message.

### Specs

- Resynced daemon IPC, Context Ops, and CCCS snapshots from Rust CCCC 0.4.33.

## [0.4.30] — Aligned with CCCC 0.4.30

Focused compatibility release for the CCCC 0.4.30 daemon line.

### Specs

- Resynced `spec/CCCC_DAEMON_IPC_V1.md`, `spec/CCCC_CONTEXT_OPS_V1.md`, and
`spec/CCCS_V1.md` from the CCCC 0.4.30 standards snapshots.

### Added

- **Message suggestions** — `send` / `reply` accept
`suggested_user_message` (Python) / `suggestedUserMessage` (TypeScript).
- **Actor/session control** — `actor_new_session`.
- **Group Copy file export** — `group_copy_export_file`.
- **Terminal history and resize** — `terminal_history`, `term_resize`.
- **Blueprint generation** — `blueprint_generate`.
- **Voice Secretary JSON helpers** — document/transcript/request helpers plus
`assistant_voice_model_install`.
- **Memory ReMe admin helpers** — layout/search/get/write/index/context
check/compact/daily flush.
- **IM bridge management** — `im_bind_chat`, `im_list_authorized`,
`im_list_pending`, `im_reject_pending`, `im_revoke_chat`.
- **Remote Access** — `remote_access_state`, `remote_access_configure`,
`remote_access_start`, `remote_access_stop`.

### Deferred

- Streaming socket-special ops (`term_attach`, browser/VNC attach variants)
remain intentionally deferred until the SDK has a shared duplex attach
transport. `term_resize` is regular request/response and is wrapped here.

### Tests

- Added Python and TypeScript contract parity coverage for the 0.4.30 JSON op
alignment.

## [0.4.18] — Aligned with CCCC 0.4.18

Focused compatibility release for the CCCC 0.4.18 daemon line.
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**。パッケージ
> バージョンは `cccc` 本体(現在 0.4.18)に追従し、daemon contract の進化に合わせて新しい workflow API を追加します。
> バージョンは `cccc` 本体(現在 0.4.33)に追従し、daemon contract の進化に合わせて新しい workflow API を追加します。

CCCC SDK は CCCC プラットフォーム向けの **クライアント SDK** です。

Expand Down Expand Up @@ -63,7 +63,7 @@ from cccc_sdk import CCCCClient
c = CCCCClient()
c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["groups"],
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 current CCCC daemon IPC v1**. Package
> versions track `cccc` core (currently 0.4.18). See `CHANGELOG.md` for the
> versions track `cccc` core (currently 0.4.33). See `CHANGELOG.md` for the
> per-version op surface, and `spec/ADAPTATION_PLAN.md` for remaining work.

CCCC SDK provides **client SDKs** for building applications on top of the CCCC platform.
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"],
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**。包版本跟随 `cccc`
> 本体(当前 0.4.18),同时随 daemon 合约演进补充新版工作流 API。
> 本体(当前 0.4.33),同时随 daemon 合约演进补充新版工作流 API。

CCCC SDK 是一套用于 CCCC 平台的**客户端 SDK**。

Expand Down Expand Up @@ -63,7 +63,7 @@ from cccc_sdk import CCCCClient
c = CCCCClient()
c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["groups"],
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 major/minor tracks CCCC: `0.4.18`.
- RC sequence is SDK-owned (`0.4.18rcN` for Python, `0.4.18-rc.N` for npm).
- SDK major/minor tracks CCCC: `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 @@ -38,8 +38,8 @@ Edit `python/pyproject.toml` (`project.version`).
### Publish RC to TestPyPI

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

This triggers `.github/workflows/python-publish-testpypi.yml`.
Expand All @@ -49,14 +49,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.18rcN
cccc-sdk==0.4.33rcN
```

### Publish stable to PyPI

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

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

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

### Local checks

Expand Down
39 changes: 36 additions & 3 deletions python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ 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"])

groups = c.groups()
print(groups)
Expand Down Expand Up @@ -171,7 +171,7 @@ c.context_sync(

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

## CCCC 0.4.18 surface — Hermes runtime and Voice Secretary lease
## CCCC 0.4.33 JSON alignment

```python
# Hermes runtime setup diagnostics and MCP preparation
Expand All @@ -186,6 +186,24 @@ lease = c.assistant_voice_recording_lease(
owner_id="browser-tab-1",
ttl_seconds=30,
)

# Current request/response JSON helpers
c.send(
group_id="g_xxx",
text="Next step",
suggested_user_message="Run the checks",
insight="The compatibility gate is the release-critical part.",
)
c.actor_new_session(group_id="g_xxx", actor_id="codex-1", clear_saved_session=True)
c.group_copy_export_file(group_id="g_xxx", include_blobs=True)
c.group_preamble_set(group_id="g_xxx", content="Project-specific startup guidance")
c.terminal_history(group_id="g_xxx", actor_id="codex-1", limit_bytes=64_000)
c.terminal_since(group_id="g_xxx", actor_id="codex-1", after=0)
c.term_resize(group_id="g_xxx", actor_id="codex-1", cols=120, rows=40)
c.blueprint_generate(group_id="g_xxx", task_id="task-1")
c.memory_reme_search(group_id="g_xxx", query="release notes")
c.im_list_authorized(platform="dingtalk")
c.remote_access_state(group_id="g_xxx")
```

## CCCC 0.4.17 surface — new op families
Expand Down Expand Up @@ -250,4 +268,19 @@ c.ledger_snapshot(group_id="g_xxx", reason="manual")
c.branding_update(patch={"product_name": "My CCCC"})
```

Not yet wrapped (use `call()` for now): remaining Voice Secretary document/transcribe/prompt ops, remaining Memory ReMe write/index/compaction ops, ChatGPT Web Model runtime, IM bridge management, Remote Access, and the streaming socket-special browser/PTY attach ops. See `spec/ADAPTATION_PLAN.md` for the roadmap.
The current request/response JSON ops are wrapped in the Python and TypeScript
clients. Still deferred: streaming socket-special attach ops such as PTY,
browser, VNC, and web-model attach flows; those need a shared duplex transport
instead of a plain `call()` wrapper. See `spec/ADAPTATION_PLAN.md` for the
roadmap.

Before consuming the optional event stream, probe the real operation rather
than only checking the daemon capability map:

```python
c.assert_compatible(require_ops=["events_stream"])
```

Voice transcription is no longer a daemon JSON operation in Rust CCCC. Use the
HTTP Voice Secretary transcription endpoint; the deprecated
`assistant_voice_transcribe()` helper now fails locally with a migration message.
2 changes: 1 addition & 1 deletion python/examples/compat_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def main() -> int:
info = c.assert_compatible(
require_ipc_v=1,
require_capabilities={"events_stream": True},
require_ops=["events_stream"],
require_ops=[
"groups",
"group_show",
Expand All @@ -31,4 +32,3 @@ def main() -> int:

if __name__ == "__main__":
raise SystemExit(main())

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.18"
version = "0.4.33"
description = "Client SDK for the CCCC daemon (IPC v1)"
readme = "README.md"
requires-python = ">=3.9"
Expand Down
Loading
Loading