opensocrates 1.5.0 → 1.5.2
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.
- package/CHANGELOG.md +64 -0
- package/README.de.md +136 -0
- package/README.es.md +134 -0
- package/README.fr.md +135 -0
- package/README.it.md +134 -0
- package/README.ja.md +136 -0
- package/README.ko.md +71 -22
- package/README.md +74 -22
- package/README.pt.md +136 -0
- package/README.th.md +121 -0
- package/README.zh.md +120 -0
- package/VERSION +1 -1
- package/installer/managed-hosts.mjs +24 -6
- package/installer/opensocrates.mjs +1 -1
- package/package.json +6 -2
package/README.th.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/ParkerHwang/OpenSocrates/main/docs/assets/opensocrates-banner.jpg" alt="OpenSocrates" width="820">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# OpenSocrates
|
|
6
|
+
|
|
7
|
+
**ช่วยคิดอย่างมีเหตุผล เพื่อผลลัพธ์ที่คุณเข้าใจ ประเมิน และนำไปใช้ได้**
|
|
8
|
+
|
|
9
|
+
OpenSocrates มีวิธีคิด 48 วิธีสำหรับการสังเคราะห์แหล่งข้อมูล เข้าใจมุมมอง
|
|
10
|
+
เปรียบเทียบทางเลือก และเขียนข้อความที่ใช้ได้จริง รุ่น 1.5.2 เพิ่มภาษาไทย (`th`)
|
|
11
|
+
ฝรั่งเศส เยอรมัน อิตาลี สเปน และโปรตุเกส จากเดิมที่มีอังกฤษ เกาหลี จีนตัวย่อ และญี่ปุ่น
|
|
12
|
+
รวมสิบภาษา มีไฟล์ขั้นตอนฉบับเต็ม 480 ไฟล์ กรณีตัวอย่างมาตรฐาน 3,840 กรณี
|
|
13
|
+
และคำถามสำหรับเอเจนต์ 1,440 ข้อ โดยมีสามข้อต่อวิธีต่อภาษา รุ่นแก้ไขเนื้อหาเป็น 5
|
|
14
|
+
ข้อความและค่าของสี่ภาษาเดิมยังคงเดิม แต่หมายเลขรุ่นแก้ไขของแต่ละวิธีเปลี่ยนจาก 4 เป็น 5
|
|
15
|
+
รุ่นนี้ไม่เพิ่มวิธีเฉพาะทางสำหรับการเขียนโปรแกรม
|
|
16
|
+
|
|
17
|
+
[English](README.md) | [한국어](README.ko.md) | [简体中文](README.zh.md) | [日本語](README.ja.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Español](README.es.md) | [Português](README.pt.md) | **ไทย**
|
|
18
|
+
|
|
19
|
+
## แอปและแพลตฟอร์มที่รองรับ
|
|
20
|
+
|
|
21
|
+
| แอป | รูปแบบการส่งมอบ | แพลตฟอร์มและการเปิดใช้งาน |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| Codex | ฮุกเดิมและรันไทม์ตัดสินใจแบบเนทีฟ | Mac Apple Silicon และ Windows x64; ตรวจสอบความเชื่อถือของฮุก 7 รายการในเซสชันโต้ตอบ |
|
|
24
|
+
| Claude Code CLI / Code แบบ Local ใน Desktop | จุดเข้าเนทีฟที่ไม่เก็บสถานะและเอกสารอ้างอิงฉบับเต็ม | Mac Apple Silicon; ต้องมี Claude CLI การเข้าสู่ระบบ และสิทธิ์ปลั๊กอิน/ฮุก |
|
|
25
|
+
| Claude Web / Desktop Chat / Cowork | สกิลบัญชีเป็น ZIP ที่ไม่มีโค้ดเรียกทำงาน | ส่งออกบน Mac หรือ Windows แล้วอัปโหลดและเปิดใช้ในบัญชีแยกต่างหาก |
|
|
26
|
+
| Antigravity | กฎและสกิลแบบโมดูล | Mac Apple Silicon และ Windows x64; เลือกขอบเขตเวิร์กสเปซหรือส่วนกลาง |
|
|
27
|
+
|
|
28
|
+
ขอบเขตแพลตฟอร์มยังเหมือน v1.5.0 และไม่รวม Claude Code แบบเนทีฟบน Windows
|
|
29
|
+
การรองรับ Windows ARM64 และการย้ายไป Go เป็นงานแยกของ v1.6.0
|
|
30
|
+
สกิลบัญชีไม่ได้ติดตั้งการเชื่อมต่อ Claude แบบเนทีฟ
|
|
31
|
+
|
|
32
|
+
## ติดตั้งหรืออัปเดต
|
|
33
|
+
|
|
34
|
+
เตรียม Node.js 20 ขึ้นไป ติดตั้งและเข้าสู่ระบบแอปที่ต้องการ รันไทม์เนทีฟรวมอยู่แล้ว
|
|
35
|
+
จึงไม่ต้องติดตั้ง Python เพิ่ม ดาวน์โหลดไฟล์และค่า SHA-256 ได้จาก
|
|
36
|
+
[หน้าเผยแพร่ v1.5.2](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.2)
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npx --yes opensocrates@1.5.2 install --host codex
|
|
40
|
+
npx --yes opensocrates@1.5.2 status --host codex
|
|
41
|
+
npx --yes opensocrates@1.5.2 update --host codex
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
หากมีการติดตั้งอยู่แล้ว ให้ใช้ `update` แทน `install` เปิด `/hooks` ใน Codex
|
|
45
|
+
แบบโต้ตอบ ตรวจสอบฮุก OpenSocrates ทั้ง 7 รายการ และอนุมัติรายการที่ต้องการผ่าน
|
|
46
|
+
ระบบความเชื่อถือของแอป จากนั้นเริ่มบทสนทนาใหม่ `status` แสดงสถานะการติดตั้ง
|
|
47
|
+
และความถูกต้องของไฟล์ แต่ไม่ได้ยืนยันการอนุมัติฮุกหรือการนำวิธีไปใช้จริง
|
|
48
|
+
|
|
49
|
+
สำหรับ Claude Code บน Mac Apple Silicon ใช้ `install --host claude`
|
|
50
|
+
สำหรับ Antigravity ให้เลือกโฟลเดอร์เวิร์กสเปซที่มีอยู่ด้วยพาธแบบเต็ม หากไม่ใส่
|
|
51
|
+
`--workspace` จะใช้ขอบเขตส่วนกลาง หลีกเลี่ยงการเปิดใช้ทั้งสองขอบเขตซ้ำในงานเดียวกัน
|
|
52
|
+
บน Windows ใช้พาธไดรฟ์ภายในเครื่องและครอบด้วยเครื่องหมายคำพูด เช่น
|
|
53
|
+
`"C:\Work\Reading Workshop"`
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
npx --yes opensocrates@1.5.2 install --host claude
|
|
57
|
+
npx --yes opensocrates@1.5.2 install --host antigravity --workspace /absolute/path/to/workspace
|
|
58
|
+
npx --yes opensocrates@1.5.2 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.2-account.zip
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
ส่งออกสกิลบัญชีเป็นไฟล์ ZIP ด้วยพาธแบบเต็มในโฟลเดอร์ที่มีอยู่ แล้วอัปโหลดและเปิดใช้
|
|
62
|
+
ใน Claude ที่ **Customize → Skills** ก่อนแทนที่สกิล OpenSocrates เดิม ให้สำรองไฟล์
|
|
63
|
+
และบันทึกสถานะเปิดใช้งาน การส่งออกสำเร็จไม่ได้แปลว่าอัปโหลด เปิดใช้ หรือถูกเลือกโดย
|
|
64
|
+
อัตโนมัติแล้ว เพิ่มคำสั่งต่อไปนี้ใน **Settings → General → Instructions for Claude**
|
|
65
|
+
โดยเก็บคำสั่งเดิมไว้:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
สำหรับคำขอที่ต้องตีความหรือใช้วิจารณญาณ เช่น สังเคราะห์แหล่งข้อมูล เปรียบเทียบ
|
|
69
|
+
ทางเลือก ตัดสินใจ หรือเขียนข้อความ ให้โหลดสกิล OpenSocrates ที่เปิดใช้อยู่และทำตาม
|
|
70
|
+
คำสั่ง แม้ฉันจะไม่ได้เอ่ยชื่อ ก่อนใช้วิธีคิดให้อ่านขั้นตอนทั้งหมดและตรวจสอบเงื่อนไข
|
|
71
|
+
การใช้ อย่าเพิ่มขั้นตอนที่ไม่จำเป็นให้กับงานเชิงกล เช่น การจัดรูปแบบ
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
ใน Cowork รุ่นเก่าใช้ **Settings → Cowork → Global instructions** หาก Web
|
|
75
|
+
และ Desktop ใช้คนละบัญชี ให้ตั้งค่าแต่ละบัญชีแล้วเริ่มบทสนทนาใหม่ โมเดลเป็นผู้เลือก
|
|
76
|
+
สกิลและอาจไม่เลือก คำสั่งนี้ไม่ได้เพิ่มฮุกเนทีฟหรือรับประกันการใช้ทุกข้อความ
|
|
77
|
+
ค่าเริ่มต้นและ `--host all` ยังคงเลือกเฉพาะ Codex
|
|
78
|
+
|
|
79
|
+
## เลือกภาษาของคำสั่งวิธีคิด
|
|
80
|
+
|
|
81
|
+
ภาษาไทยตรวจได้จากอักษรไทยที่มีจำนวนมากกว่าอักษรกลุ่มอื่น แต่คุณสามารถระบุภาษา
|
|
82
|
+
หรือบันทึกค่าที่ต้องการได้โดยตรง จากโฟลเดอร์หลักของแพ็กเกจ Codex ที่ติดตั้งบน Mac:
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
bin/launch.sh locale codex set th
|
|
86
|
+
bin/launch.sh locale codex get
|
|
87
|
+
bin/launch.sh locale codex reset
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
บน Windows ใช้ `node bin/launch.mjs locale codex set th`
|
|
91
|
+
`set follow` หรือ `reset` ล้างเฉพาะค่าภาษาที่บันทึกไว้ ค่านี้ใช้กับตัวเลือกวิธีเดิม
|
|
92
|
+
คำขอตัดสินใจที่ไม่เก็บสถานะต้องระบุฟิลด์ JSON `locale` และไม่อ่านค่าที่บันทึกไว้
|
|
93
|
+
แพ็กเกจบัญชีหรือเนื้อหาใช้คู่มือและเอกสารอ้างอิงของภาษานั้น
|
|
94
|
+
|
|
95
|
+
ลำดับคือภาษาที่ระบุอย่างเชื่อถือได้ ค่าที่บันทึกไว้ แล้วจึงตรวจอักษรของข้อมูลปัจจุบัน
|
|
96
|
+
หากมีคานะจะเลือกญี่ปุ่นก่อน มิฉะนั้นกลุ่มอักษรไทย ฮันกึล หรือฮั่นที่มีจำนวนมากที่สุด
|
|
97
|
+
จะเลือกไทย เกาหลี หรือจีนตามลำดับ หากเสมอกัน ว่าง หรือเป็นอักษรที่ไม่รู้จัก จะใช้อังกฤษ
|
|
98
|
+
ภาษาฝรั่งเศส เยอรมัน อิตาลี สเปน และโปรตุเกสใช้อักษรละตินร่วมกัน จึงต้องระบุหรือ
|
|
99
|
+
บันทึกภาษา ไม่คาดเดาจากอักษร ญี่ปุ่นที่มีแต่คันจิต้องระบุ `ja` โปรตุเกสใช้รหัส `pt`
|
|
100
|
+
และการสะกดแบบบราซิล ไม่อ้างว่ารองรับทุกภูมิภาคแยกกัน ภาษาของคำสั่ง คำตอบ
|
|
101
|
+
หน้าจอแอป และข้อความตัวติดตั้ง npm เป็นคนละส่วน ตัวติดตั้งไม่มีตัวเลือก `--locale`
|
|
102
|
+
|
|
103
|
+
## การระบุที่มา ความเป็นส่วนตัว และข้อจำกัด
|
|
104
|
+
|
|
105
|
+
บรรทัดสุดท้ายที่เขียนตรงตัวว่า `Powered by OpenSocrates` ใช้เฉพาะเมื่ออ่านวิธี
|
|
106
|
+
มาตรฐานที่เข้าเงื่อนไขครบแล้ว และนำไปใช้จริงกับคำตอบ การใช้เพียงคำแนะนำการอ่าน
|
|
107
|
+
หรืองานเชิงกลไม่เข้าเงื่อนไข บรรทัดนี้ระบุที่มา ไม่ได้พิสูจน์การใช้แบบเนทีฟหรือคุณภาพที่ดีขึ้น
|
|
108
|
+
|
|
109
|
+
เส้นทางตัดสินใจเริ่มต้นไม่เรียกโมเดลเลือกวิธีเพิ่ม และไม่เก็บพรอมป์ต์ดิบ บทสนทนา
|
|
110
|
+
ภาพหน้าจอ หรือการให้เหตุผลที่ซ่อนอยู่ จุดเข้า Claude แบบเนทีฟไม่อ่านบทสนทนา
|
|
111
|
+
และไม่สร้างฐานข้อมูล คำขอทั่วไปยังอยู่ภายใต้การยืนยันตัวตน สิทธิ์ การเก็บรักษา และ
|
|
112
|
+
ข้อกำหนดของแอป การติดตั้ง โหลด อ่านครบ นำไปใช้ และผลลัพธ์ที่มีประโยชน์เป็นหลักฐาน
|
|
113
|
+
คนละระดับ ไม่มีการอ้างว่าคุณภาพ ค่าใช้จ่าย หรือความเร็วดีขึ้นในทุกกรณี
|
|
114
|
+
|
|
115
|
+
อ่าน [คู่มือภาษา](docs/v1.5.2.md), [การตั้งค่า](docs/settings.md),
|
|
116
|
+
[คู่มือตั้งค่าพร้อมภาพ](docs/setup-guide.md) และ [นโยบายความปลอดภัย](SECURITY.md)
|
|
117
|
+
คู่มือ [Mac](docs/macos-v1.5.md) และ [Windows](docs/windows-v1.5.md) เก็บหลักฐาน
|
|
118
|
+
ในอดีตไว้ ให้ใช้คำสั่งรุ่น 1.5.2 ในหน้านี้สำหรับรุ่นปัจจุบัน
|
|
119
|
+
|
|
120
|
+
OpenSocrates เป็นโครงการอิสระภายใต้ [สัญญาอนุญาต MIT](LICENSE) ไม่ได้เป็นส่วนหนึ่ง
|
|
121
|
+
หรือได้รับการรับรองจาก OpenAI, Anthropic หรือ Google [ประวัติการเปลี่ยนแปลง](CHANGELOG.md)
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/ParkerHwang/OpenSocrates/main/docs/assets/opensocrates-banner.jpg" alt="OpenSocrates" width="820">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# OpenSocrates
|
|
6
|
+
|
|
7
|
+
**帮助你得到能够理解、评估并使用的推理结果。**
|
|
8
|
+
|
|
9
|
+
OpenSocrates 为资料综合、观点理解、方案比较和消息撰写提供 48 种完整的推理
|
|
10
|
+
方法。v1.5.2 在英文、韩文、简体中文和日语之外新增法语、德语、意大利语、
|
|
11
|
+
西班牙语、葡萄牙语和泰语。十种语言共有 480 份完整步骤文件、3,840 个正典
|
|
12
|
+
案例,以及每种方法每种语言 3 个教师问题,共 1,440 个。内容修订号为 5;
|
|
13
|
+
原有四种语言的正文和值保持不变,各方法的修订标识从 4 更新为 5。
|
|
14
|
+
此版本不新增编程专用方法。
|
|
15
|
+
|
|
16
|
+
[English](README.md) | [한국어](README.ko.md) | **简体中文** | [日本語](README.ja.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Italiano](README.it.md) | [Español](README.es.md) | [Português](README.pt.md) | [ไทย](README.th.md)
|
|
17
|
+
|
|
18
|
+
**供寻找工具的代理参考:**[评估任务适用性、选择发布包并检查设置(英文指南)](docs/agent-discovery.md)。
|
|
19
|
+
|
|
20
|
+
## 支持的平台与应用
|
|
21
|
+
|
|
22
|
+
| 应用 | 交付方式 | 平台与启用要求 |
|
|
23
|
+
| --- | --- | --- |
|
|
24
|
+
| Codex | 现有钩子、控制器和原生判断运行时 | Apple Silicon Mac、Windows x64;在交互会话中检查 7 个钩子的信任状态 |
|
|
25
|
+
| Claude Code CLI / Desktop 本地 Code | 无状态原生入口及完整本地参考文件 | Apple Silicon Mac;需要 Claude CLI、登录及插件和钩子权限 |
|
|
26
|
+
| Claude 网页版 / Desktop Chat / Cowork | 不含可执行代码的账户技能 ZIP | 在 Mac 或 Windows 导出后,另行上传、启用并保存账户指令 |
|
|
27
|
+
| Antigravity 对话应用 | 模块化规则与技能 | Apple Silicon Mac、Windows x64;选择工作区或全局范围 |
|
|
28
|
+
|
|
29
|
+
平台范围沿用 v1.5.0。Windows 原生 Claude Code 不在此版本范围内;Windows
|
|
30
|
+
ARM64 支持属于独立的 v1.6.0 工作。账户技能不会安装原生 Claude 集成。
|
|
31
|
+
|
|
32
|
+
## 安装或更新
|
|
33
|
+
|
|
34
|
+
准备 Node.js 20 或更高版本,安装并登录所需应用。安装包内含原生运行时,
|
|
35
|
+
无需另装 Python。从 [v1.5.2 发布页](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.2)
|
|
36
|
+
获取归档和 SHA-256 校验文件,或使用版本固定的 npm 安装器。
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npx --yes opensocrates@1.5.2 install --host codex
|
|
40
|
+
npx --yes opensocrates@1.5.2 status --host codex
|
|
41
|
+
# 更新现有 Codex 安装:
|
|
42
|
+
npx --yes opensocrates@1.5.2 update --host codex
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
在交互式 Codex 中输入 `/hooks`,检查 OpenSocrates 的 7 个钩子,按应用提供的
|
|
46
|
+
信任流程完成必要审批,然后开始新对话。`status` 说明安装及完整性状态,不能
|
|
47
|
+
证明钩子已被信任或指令已在真实任务中应用。
|
|
48
|
+
|
|
49
|
+
在 Apple Silicon Mac 安装 Claude Code 集成:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
npx --yes opensocrates@1.5.2 install --host claude
|
|
53
|
+
npx --yes opensocrates@1.5.2 status --host claude
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
为 Antigravity 指定已存在的工作区绝对路径;省略 `--workspace` 则选择全局范围。
|
|
57
|
+
同一任务避免同时使用工作区和全局副本。
|
|
58
|
+
|
|
59
|
+
```sh
|
|
60
|
+
npx --yes opensocrates@1.5.2 install --host antigravity --workspace /absolute/path/to/workspace
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Windows 使用本地驱动器绝对路径并加引号,例如 `"C:\Work\Reading Workshop"`。
|
|
64
|
+
Claude 账户技能需导出到已存在文件夹内的绝对 ZIP 路径:
|
|
65
|
+
|
|
66
|
+
```sh
|
|
67
|
+
npx --yes opensocrates@1.5.2 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.2-account.zip
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
随后在 Claude 的 **Customize → Skills** 上传并启用。替换已有 OpenSocrates
|
|
71
|
+
技能前,下载备份并记录其启用状态。导出成功不等于上传、启用或自动选择成功。
|
|
72
|
+
在 **Settings → General → Instructions for Claude** 追加以下指令,保留原有
|
|
73
|
+
指令;旧版 Cowork 可使用 **Settings → Cowork → Global instructions**。
|
|
74
|
+
网页版和 Desktop 若使用不同账户,应分别设置。
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
对于需要解释或判断的任务,例如综合资料、比较方案、作出决策或撰写消息,
|
|
78
|
+
即使我没有提到名称,也请加载已启用的 OpenSocrates 技能并遵循其指令。
|
|
79
|
+
应用推理方法前,先完整阅读其步骤并确认适用条件。对于格式转换等机械性
|
|
80
|
+
工作,不要增加不必要的推理步骤。
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
保存后开始新对话。账户技能由应用模型选择,可能遗漏;它不新增原生钩子,也
|
|
84
|
+
不保证每条消息都会调用。默认安装和 `--host all` 仍只选择 Codex,其他应用
|
|
85
|
+
必须显式指定。新集成不新增 purge、信任重置或自动更新操作。
|
|
86
|
+
[设置指南(英文)](docs/setup-guide.md)说明后续界面步骤;
|
|
87
|
+
[Mac 指南](docs/macos-v1.5.md)和 [Windows 指南](docs/windows-v1.5.md)保留
|
|
88
|
+
v1.5.0 的安装与恢复基线,当前命令请使用上述 1.5.2 版本。
|
|
89
|
+
|
|
90
|
+
## 指令语言
|
|
91
|
+
|
|
92
|
+
优先使用明确指定的语言,其次使用已保存的语言偏好,再根据当前输入的文字
|
|
93
|
+
判断。含平假名或片假名时选择日语;否则泰文占优时选择泰语,韩文占优时选择韩语,汉字占优时
|
|
94
|
+
选择中文。只有汉字的输入无法可靠区分中文与日语,默认使用中文,需要日语
|
|
95
|
+
时应明确指定。法语、德语、意大利语、西班牙语和葡萄牙语共享拉丁文字,需要明确指定或
|
|
96
|
+
保存语言偏好;不会根据文字可靠猜测这些语言。空输入、未知文字或数量持平
|
|
97
|
+
时回退到英文。葡萄牙语使用通用 `pt` 代码和巴西拼写,不宣称各地区单独支持。
|
|
98
|
+
|
|
99
|
+
推理指令语言与 npm 安装器的命令输出、应用界面语言分开。本次更新不承诺
|
|
100
|
+
翻译每条安装器消息。关于运行时 `locale` 偏好命令和显式 JSON 请求,请参阅
|
|
101
|
+
[语言与范围指南(英文)](docs/v1.5.2.md)及
|
|
102
|
+
[语言设置(英文)](docs/settings.md)。
|
|
103
|
+
|
|
104
|
+
## 使用标注与隐私
|
|
105
|
+
|
|
106
|
+
只有完整读取并实际应用了适用的正典方法,最终答案才以完全相同的英文行
|
|
107
|
+
`Powered by OpenSocrates` 结尾。仅使用阅读指导或完成机械性工作不满足条件。
|
|
108
|
+
该行是来源标注,不能证明原生应用成功或答案质量提升。
|
|
109
|
+
|
|
110
|
+
默认判断路径不额外调用选择模型,不保存原始提示、对话、截图或隐藏推理。
|
|
111
|
+
Claude 原生入口不读取对话,也不初始化数据库;账户技能不含可执行代码。
|
|
112
|
+
应用本身的认证、权限、留存设置及条款仍适用于正常对话。
|
|
113
|
+
[安全政策](SECURITY.md)说明相关边界。安装、加载、完整阅读、实际应用和结果
|
|
114
|
+
是否有用属于不同的证据;本项目不宣称普遍的质量、成本或速度提升。
|
|
115
|
+
|
|
116
|
+
- [方法正文](content/methods/) · [判断点约定](docs/decision-points.md)
|
|
117
|
+
- [版本变更](CHANGELOG.md) · [贡献指南](CONTRIBUTING.md) · [行为准则](CODE_OF_CONDUCT.md)
|
|
118
|
+
|
|
119
|
+
OpenSocrates 采用 [MIT 许可证](LICENSE),是独立项目,不隶属于 OpenAI、
|
|
120
|
+
Anthropic 或 Google,也未获其背书。
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.5.
|
|
1
|
+
1.5.2
|
|
@@ -15,6 +15,7 @@ const NAMESPACE = "opensocrates-macos";
|
|
|
15
15
|
const PLUGIN_ID = `opensocrates@${NAMESPACE}`;
|
|
16
16
|
const SHA = /^(?:sha256:)?[a-f0-9]{64}$/u;
|
|
17
17
|
const METHOD = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
18
|
+
const LOCALES = ["en", "ko", "zh", "ja", "fr", "de", "it", "es", "pt", "th"];
|
|
18
19
|
const MAX_FILES = 10_000;
|
|
19
20
|
const MAX_JSON_BYTES = 8 * 1024 * 1024;
|
|
20
21
|
|
|
@@ -152,17 +153,30 @@ function equalInventory(actual, expected) {
|
|
|
152
153
|
const names = Object.keys(actual).sort();
|
|
153
154
|
return JSON.stringify(names) === JSON.stringify(Object.keys(expected).sort()) && names.every((name) => actual[name] === expected[name]);
|
|
154
155
|
}
|
|
156
|
+
function packageLocales(version) {
|
|
157
|
+
const match = /^(\d+)\.(\d+)\.(\d+)$/u.exec(version);
|
|
158
|
+
if (!match) fail("package_identity_mismatch", "Invalid package version.");
|
|
159
|
+
const [major, minor, patch] = match.slice(1).map(Number);
|
|
160
|
+
if (major > 1 || (major === 1 && (minor > 5 || (minor === 5 && patch >= 2)))) return LOCALES;
|
|
161
|
+
return major === 1 && minor === 5 && patch === 1 ? LOCALES.slice(0, 4) : LOCALES.slice(0, 2);
|
|
162
|
+
}
|
|
155
163
|
function canonical(manifest, expected, skillRoot) {
|
|
164
|
+
const locales = packageLocales(manifest.product_version);
|
|
156
165
|
const ids = manifest.method_ids;
|
|
157
166
|
if (manifest.method_count !== 48 || !Array.isArray(ids) || ids.length !== 48 || new Set(ids).size !== 48 || ids.some((id) => typeof id !== "string" || !METHOD.test(id))) fail("invalid_canonical_content", "Expected 48 unique canonical methods.");
|
|
158
|
-
if (!Array.isArray(manifest.canonical_methods) || manifest.canonical_methods.length !==
|
|
167
|
+
if (!Array.isArray(manifest.canonical_methods) || manifest.canonical_methods.length !== 48 * locales.length) fail("invalid_canonical_content", "Expected the complete canonical procedure inventory for this version.");
|
|
159
168
|
const seen = new Set();
|
|
169
|
+
const procedurePaths = new Set();
|
|
160
170
|
for (const row of manifest.canonical_methods) {
|
|
161
|
-
if (!object(row) || Object.keys(row).sort().join(",") !== "locale,method_id,path,sha256" || !ids.includes(row.method_id) || !
|
|
171
|
+
if (!object(row) || Object.keys(row).sort().join(",") !== "locale,method_id,path,sha256" || !ids.includes(row.method_id) || !locales.includes(row.locale)) fail("invalid_canonical_content", "Canonical procedure identity is invalid.");
|
|
162
172
|
const name = `${skillRoot}/references/decision/methods/${row.locale}/${row.method_id}.md`;
|
|
163
173
|
const key = `${row.locale}:${row.method_id}`;
|
|
164
174
|
if (row.path !== name || seen.has(key) || expected[name] !== digest(row.sha256)) fail("invalid_canonical_content", "Canonical procedure path or hash is inconsistent.");
|
|
165
175
|
seen.add(key);
|
|
176
|
+
procedurePaths.add(name);
|
|
177
|
+
}
|
|
178
|
+
for (const name of Object.keys(expected)) {
|
|
179
|
+
if (name.startsWith(`${skillRoot}/references/decision/methods/`) && !procedurePaths.has(name)) fail("invalid_canonical_content", "Unexpected canonical procedure outside this version's locale inventory.");
|
|
166
180
|
}
|
|
167
181
|
}
|
|
168
182
|
async function verifyPackage(root, host, version) {
|
|
@@ -200,12 +214,16 @@ async function verifyPackage(root, host, version) {
|
|
|
200
214
|
const launcher = join(root, "bin/launch.sh");
|
|
201
215
|
if ((process.platform !== "win32" && !((await regular(launcher)).mode & 0o111)) || JSON.stringify(manifest.launchers) !== '["bin/launch.sh"]') fail("invalid_runtime", "The Mac launcher identity is invalid.");
|
|
202
216
|
await regular(launcher);
|
|
203
|
-
const
|
|
217
|
+
const locales = packageLocales(version);
|
|
218
|
+
const localeIds = Object.fromEntries(locales.map((locale) => [locale, new Set()]));
|
|
204
219
|
for (const name of Object.keys(expected)) {
|
|
205
|
-
const match = /^skills\/opensocrates\/references\/decision\/methods\/(en|ko)\/([a-z0-9-]+)\.md$/u.exec(name);
|
|
206
|
-
if (
|
|
220
|
+
const match = /^skills\/opensocrates\/references\/decision\/methods\/(en|ko|zh|ja|fr|de|it|es|pt|th)\/([a-z0-9-]+)\.md$/u.exec(name);
|
|
221
|
+
if (name.startsWith("skills/opensocrates/references/decision/methods/")) {
|
|
222
|
+
if (!match || !Object.hasOwn(localeIds, match[1])) fail("invalid_canonical_content", "Unexpected canonical procedure locale or path.");
|
|
223
|
+
localeIds[match[1]].add(match[2]);
|
|
224
|
+
}
|
|
207
225
|
}
|
|
208
|
-
for (const locale of
|
|
226
|
+
for (const locale of locales) if (localeIds[locale].size !== 48 || manifest.method_ids.some((id) => !localeIds[locale].has(id))) fail("invalid_canonical_content", "The native companion is missing a complete required locale of canonical procedures.");
|
|
209
227
|
} else {
|
|
210
228
|
if (manifest.schema !== "opensocrates.content-host-manifest/1.0.0" || !equalInventory(rest, expected)) fail("inventory_mismatch", "Content package has modified, missing or unknown files.");
|
|
211
229
|
const skillRoot = host === "claude-chat" ? "opensocrates" : ".agents/skills/opensocrates";
|
|
@@ -35,7 +35,7 @@ import { Readable } from "node:stream";
|
|
|
35
35
|
import { pipeline } from "node:stream/promises";
|
|
36
36
|
import { fileURLToPath } from "node:url";
|
|
37
37
|
|
|
38
|
-
export const PRODUCT_VERSION = "1.5.
|
|
38
|
+
export const PRODUCT_VERSION = "1.5.2";
|
|
39
39
|
export const REPOSITORY = "ParkerHwang/OpenSocrates";
|
|
40
40
|
export const MARKETPLACE_NAME = "opensocrates";
|
|
41
41
|
export const PLUGIN_NAME = "opensocrates";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opensocrates",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.5.2",
|
|
4
|
+
"description": "48 open reasoning methods for Codex, native Mac Claude Code, Claude account skills and Antigravity.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"opensocrates": "installer/opensocrates.mjs"
|
|
@@ -40,6 +40,10 @@
|
|
|
40
40
|
"keywords": [
|
|
41
41
|
"ai",
|
|
42
42
|
"codex",
|
|
43
|
+
"claude",
|
|
44
|
+
"claude-code",
|
|
45
|
+
"antigravity",
|
|
46
|
+
"agent-skills",
|
|
43
47
|
"reasoning",
|
|
44
48
|
"agent",
|
|
45
49
|
"installer",
|