| Rewrite all sources to align with Cangjie 1.1.3 stdlib APIs This is a major rewrite. The previous 0.1.0 sources were authored without access to a Cangjie 1.1.3 SDK and contained a number of mistakes (std.core.Environment.argv does not exist, std.process API shape was wrong, a hand-rolled atomic module was added that the stdlib does not provide, etc.). This commit fixes every file against the stdlib surface documented at docs.cangjie-lang.cn. Core changes ------------ * main is now declared as main(args: Array<String>): Int64; argv is the parameter, NOT std.core.Environment.argv. * The AtomicBool / AtomicRef / tomic_fence shim is gone. The server is single-threaded by design and uses a plain ar Bool for the initialised flag. * class Foo <: Exception initialisers are now first-class — all public let fields are assigned in the primary init that calls super(...). * Option<T> is the only nullable type. None is a variant of Option, not a top-level name imported from std.core. * match no longer supports tuple destructuring on the right-hand side of let; the code uses a plain local + a nested match. * std.process.executeWithOutput(command, args, cwd, env, ...) replaces the old Process.run(...) static-method shape. Files touched ------------ * src/main.cj, src/cli.cj, src/lib.cj * src/core/{error,jsonx,log,protocol,server,tool,transport,registry}.cj * src/knowledge/{api_index,explain,loader,patterns}.cj * src/tools/{cjapi,cjdoc,cjfmt,cjlint,cjpm,explain,patterns,pkgsearch,scaffold,fs}.cj * test/core/{error,jsonx,protocol,registry}_test.cj * test/knowledge/api_index_test.cj * test/tools/tools_test.cj * test/integration/server_test.cj * example/{minimal,full}/src/main.cj * benchmark/src/main.cj Verification ------------ This commit does NOT include a cjpm build pass because the authoring environment has no Cangjie 1.1.3 SDK installed. The rewrite was driven by: 1. The published 1.1.3 docs at docs.cangjie-lang.cn (main signature, std.process API, std.io file APIs, std.net HttpClient.get). 2. The cj-codelabs/docs sample projects (a-la cjpm / cjlint). 3. Manual code review of every file by the author. A maintainer with the SDK should run cjpm update && cjpm build and cjpm test to confirm. The most likely remaining issues are: * std.io.InputStream.stdin() / OutputStream.stdout() — the stdin/stdout static accessors exist on std.env in some versions; substitute if the compiler complains. * std.fs.Path(...) constructor — exists in 1.1.3 but the field shape differs from earlier versions. * ByteReader.read(buf: Array<UInt8>) — argument shape may need a slice or a different overload depending on the SDK. | 20 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Rewrite all sources to align with Cangjie 1.1.3 stdlib APIs This is a major rewrite. The previous 0.1.0 sources were authored without access to a Cangjie 1.1.3 SDK and contained a number of mistakes (std.core.Environment.argv does not exist, std.process API shape was wrong, a hand-rolled atomic module was added that the stdlib does not provide, etc.). This commit fixes every file against the stdlib surface documented at docs.cangjie-lang.cn. Core changes ------------ * main is now declared as main(args: Array<String>): Int64; argv is the parameter, NOT std.core.Environment.argv. * The AtomicBool / AtomicRef / tomic_fence shim is gone. The server is single-threaded by design and uses a plain ar Bool for the initialised flag. * class Foo <: Exception initialisers are now first-class — all public let fields are assigned in the primary init that calls super(...). * Option<T> is the only nullable type. None is a variant of Option, not a top-level name imported from std.core. * match no longer supports tuple destructuring on the right-hand side of let; the code uses a plain local + a nested match. * std.process.executeWithOutput(command, args, cwd, env, ...) replaces the old Process.run(...) static-method shape. Files touched ------------ * src/main.cj, src/cli.cj, src/lib.cj * src/core/{error,jsonx,log,protocol,server,tool,transport,registry}.cj * src/knowledge/{api_index,explain,loader,patterns}.cj * src/tools/{cjapi,cjdoc,cjfmt,cjlint,cjpm,explain,patterns,pkgsearch,scaffold,fs}.cj * test/core/{error,jsonx,protocol,registry}_test.cj * test/knowledge/api_index_test.cj * test/tools/tools_test.cj * test/integration/server_test.cj * example/{minimal,full}/src/main.cj * benchmark/src/main.cj Verification ------------ This commit does NOT include a cjpm build pass because the authoring environment has no Cangjie 1.1.3 SDK installed. The rewrite was driven by: 1. The published 1.1.3 docs at docs.cangjie-lang.cn (main signature, std.process API, std.io file APIs, std.net HttpClient.get). 2. The cj-codelabs/docs sample projects (a-la cjpm / cjlint). 3. Manual code review of every file by the author. A maintainer with the SDK should run cjpm update && cjpm build and cjpm test to confirm. The most likely remaining issues are: * std.io.InputStream.stdin() / OutputStream.stdout() — the stdin/stdout static accessors exist on std.env in some versions; substitute if the compiler complains. * std.fs.Path(...) constructor — exists in 1.1.3 but the field shape differs from earlier versions. * ByteReader.read(buf: Array<UInt8>) — argument shape may need a slice or a different overload depending on the SDK. | 20 天前 |
| feat: fully implement cjdrift MCP server (core/knowledge/tools/entry + docs) - cjdrift.core: self-contained JSON value model, parser, JSON-RPC 2.0 protocol, tool registry, stdio transport, fault-tolerant MCP server loop. - cjdrift.knowledge: offline Cangjie 1.1.3 API index, error explainer, pattern library, asset loader with builtin fallback. - cjdrift.tools: 13 MCP tools (apis, doc, patterns, run, lint, fmt, pkg_search, scaffold, explain, read_file, write_file, list_dir, fs). - cjdrift: default registry wiring, CLI front end, main entry. - Fix JArray.size() method calls, HashMap.getOrDefault -> explicit match, executeWithOutput args ArrayList -> Array. - docs/tools.md: document the cangjie_fs bundle tool. | 19 天前 |
| Rewrite all sources to align with Cangjie 1.1.3 stdlib APIs This is a major rewrite. The previous 0.1.0 sources were authored without access to a Cangjie 1.1.3 SDK and contained a number of mistakes (std.core.Environment.argv does not exist, std.process API shape was wrong, a hand-rolled atomic module was added that the stdlib does not provide, etc.). This commit fixes every file against the stdlib surface documented at docs.cangjie-lang.cn. Core changes ------------ * main is now declared as main(args: Array<String>): Int64; argv is the parameter, NOT std.core.Environment.argv. * The AtomicBool / AtomicRef / tomic_fence shim is gone. The server is single-threaded by design and uses a plain ar Bool for the initialised flag. * class Foo <: Exception initialisers are now first-class — all public let fields are assigned in the primary init that calls super(...). * Option<T> is the only nullable type. None is a variant of Option, not a top-level name imported from std.core. * match no longer supports tuple destructuring on the right-hand side of let; the code uses a plain local + a nested match. * std.process.executeWithOutput(command, args, cwd, env, ...) replaces the old Process.run(...) static-method shape. Files touched ------------ * src/main.cj, src/cli.cj, src/lib.cj * src/core/{error,jsonx,log,protocol,server,tool,transport,registry}.cj * src/knowledge/{api_index,explain,loader,patterns}.cj * src/tools/{cjapi,cjdoc,cjfmt,cjlint,cjpm,explain,patterns,pkgsearch,scaffold,fs}.cj * test/core/{error,jsonx,protocol,registry}_test.cj * test/knowledge/api_index_test.cj * test/tools/tools_test.cj * test/integration/server_test.cj * example/{minimal,full}/src/main.cj * benchmark/src/main.cj Verification ------------ This commit does NOT include a cjpm build pass because the authoring environment has no Cangjie 1.1.3 SDK installed. The rewrite was driven by: 1. The published 1.1.3 docs at docs.cangjie-lang.cn (main signature, std.process API, std.io file APIs, std.net HttpClient.get). 2. The cj-codelabs/docs sample projects (a-la cjpm / cjlint). 3. Manual code review of every file by the author. A maintainer with the SDK should run cjpm update && cjpm build and cjpm test to confirm. The most likely remaining issues are: * std.io.InputStream.stdin() / OutputStream.stdout() — the stdin/stdout static accessors exist on std.env in some versions; substitute if the compiler complains. * std.fs.Path(...) constructor — exists in 1.1.3 but the field shape differs from earlier versions. * ByteReader.read(buf: Array<UInt8>) — argument shape may need a slice or a different overload depending on the SDK. | 20 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| feat: migrate unit tests into src packages and complete coverage Move every *_test.cj into its source package so cjpm test discovers and runs them, then broaden coverage across the knowledge and tool layers and the server dispatch path: - core: add server dispatch, protocol, registry, transport, jsonx tests - knowledge: add api-index, explain, patterns, loader tests - tools: add cangjie_apis/doc/explain/patterns tool tests - core: expose ToolResult.firstText() for cross-package result inspection - remove the obsolete top-level test/ directory (superseded by in-package tests) All 141 cases pass under cjpm test (verified on an ASCII-path checkout). | 18 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| Add Chinese README and submission materials - README.zh-CN.md: 中文版主文档 - _artifacts/PROPOSAL.md: 项目提案(三方库开发任务) - _artifacts/SUBMISSION.md: 已填写的作品提交模板的 Markdown 源 - _artifacts/build_submission_docx.py: 生成 .docx 的脚本 - _artifacts/*.docx: 已填写的 .docx 模板 - _artifacts/HOW_TO_SUBMIT.md: 提交流程 - _artifacts/DEMO_NOTES.md: 演示视频脚本 | 29 天前 |
| feat: fully implement cjdrift MCP server (core/knowledge/tools/entry + docs) - cjdrift.core: self-contained JSON value model, parser, JSON-RPC 2.0 protocol, tool registry, stdio transport, fault-tolerant MCP server loop. - cjdrift.knowledge: offline Cangjie 1.1.3 API index, error explainer, pattern library, asset loader with builtin fallback. - cjdrift.tools: 13 MCP tools (apis, doc, patterns, run, lint, fmt, pkg_search, scaffold, explain, read_file, write_file, list_dir, fs). - cjdrift: default registry wiring, CLI front end, main entry. - Fix JArray.size() method calls, HashMap.getOrDefault -> explicit match, executeWithOutput args ArrayList -> Array. - docs/tools.md: document the cangjie_fs bundle tool. | 19 天前 |
| Initial commit: cjdrift 0.1.0 cjdrift is an AI-native MCP toolchain for Cangjie 1.1.3 developers. It exposes a curated set of Cangjie-aware tools to any MCP-compatible LLM client (Claude Desktop, Cursor, Windsurf, Continue) so the model can search the standard library, run cjpm / cjlint / cjfmt, scaffold a new project, look up the central registry, or read a source file without leaving the chat. Tools (12): cangjie_apis, cangjie_doc, cangjie_patterns, cangjie_run, cangjie_lint, cangjie_fmt, cangjie_pkg_search, cangjie_scaffold, cangjie_explain, cangjie_read_file, cangjie_write_file, cangjie_list_dir. Targets Cangjie 1.1.3 (STS). Apache-2.0. | 29 天前 |
| feat: migrate unit tests into src packages and complete coverage Move every *_test.cj into its source package so cjpm test discovers and runs them, then broaden coverage across the knowledge and tool layers and the server dispatch path: - core: add server dispatch, protocol, registry, transport, jsonx tests - knowledge: add api-index, explain, patterns, loader tests - tools: add cangjie_apis/doc/explain/patterns tool tests - core: expose ToolResult.firstText() for cross-package result inspection - remove the obsolete top-level test/ directory (superseded by in-package tests) All 141 cases pass under cjpm test (verified on an ASCII-path checkout). | 18 天前 |