opensocrates 1.5.1 → 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 +40 -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 +25 -18
- package/README.ko.md +36 -27
- package/README.md +39 -31
- package/README.pt.md +136 -0
- package/README.th.md +121 -0
- package/README.zh.md +23 -16
- package/VERSION +1 -1
- package/installer/managed-hosts.mjs +13 -4
- 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
CHANGED
|
@@ -7,11 +7,15 @@
|
|
|
7
7
|
**帮助你得到能够理解、评估并使用的推理结果。**
|
|
8
8
|
|
|
9
9
|
OpenSocrates 为资料综合、观点理解、方案比较和消息撰写提供 48 种完整的推理
|
|
10
|
-
方法。v1.5.
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
方法。v1.5.2 在英文、韩文、简体中文和日语之外新增法语、德语、意大利语、
|
|
11
|
+
西班牙语、葡萄牙语和泰语。十种语言共有 480 份完整步骤文件、3,840 个正典
|
|
12
|
+
案例,以及每种方法每种语言 3 个教师问题,共 1,440 个。内容修订号为 5;
|
|
13
|
+
原有四种语言的正文和值保持不变,各方法的修订标识从 4 更新为 5。
|
|
14
|
+
此版本不新增编程专用方法。
|
|
13
15
|
|
|
14
|
-
[English](README.md) | [한국어](README.ko.md) | **简体中文** | [日本語](README.ja.md)
|
|
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)。
|
|
15
19
|
|
|
16
20
|
## 支持的平台与应用
|
|
17
21
|
|
|
@@ -28,14 +32,14 @@ ARM64 支持属于独立的 v1.6.0 工作。账户技能不会安装原生 Claud
|
|
|
28
32
|
## 安装或更新
|
|
29
33
|
|
|
30
34
|
准备 Node.js 20 或更高版本,安装并登录所需应用。安装包内含原生运行时,
|
|
31
|
-
无需另装 Python。从 [v1.5.
|
|
35
|
+
无需另装 Python。从 [v1.5.2 发布页](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.2)
|
|
32
36
|
获取归档和 SHA-256 校验文件,或使用版本固定的 npm 安装器。
|
|
33
37
|
|
|
34
38
|
```sh
|
|
35
|
-
npx --yes opensocrates@1.5.
|
|
36
|
-
npx --yes opensocrates@1.5.
|
|
39
|
+
npx --yes opensocrates@1.5.2 install --host codex
|
|
40
|
+
npx --yes opensocrates@1.5.2 status --host codex
|
|
37
41
|
# 更新现有 Codex 安装:
|
|
38
|
-
npx --yes opensocrates@1.5.
|
|
42
|
+
npx --yes opensocrates@1.5.2 update --host codex
|
|
39
43
|
```
|
|
40
44
|
|
|
41
45
|
在交互式 Codex 中输入 `/hooks`,检查 OpenSocrates 的 7 个钩子,按应用提供的
|
|
@@ -45,22 +49,22 @@ npx --yes opensocrates@1.5.1 update --host codex
|
|
|
45
49
|
在 Apple Silicon Mac 安装 Claude Code 集成:
|
|
46
50
|
|
|
47
51
|
```sh
|
|
48
|
-
npx --yes opensocrates@1.5.
|
|
49
|
-
npx --yes opensocrates@1.5.
|
|
52
|
+
npx --yes opensocrates@1.5.2 install --host claude
|
|
53
|
+
npx --yes opensocrates@1.5.2 status --host claude
|
|
50
54
|
```
|
|
51
55
|
|
|
52
56
|
为 Antigravity 指定已存在的工作区绝对路径;省略 `--workspace` 则选择全局范围。
|
|
53
57
|
同一任务避免同时使用工作区和全局副本。
|
|
54
58
|
|
|
55
59
|
```sh
|
|
56
|
-
npx --yes opensocrates@1.5.
|
|
60
|
+
npx --yes opensocrates@1.5.2 install --host antigravity --workspace /absolute/path/to/workspace
|
|
57
61
|
```
|
|
58
62
|
|
|
59
63
|
Windows 使用本地驱动器绝对路径并加引号,例如 `"C:\Work\Reading Workshop"`。
|
|
60
64
|
Claude 账户技能需导出到已存在文件夹内的绝对 ZIP 路径:
|
|
61
65
|
|
|
62
66
|
```sh
|
|
63
|
-
npx --yes opensocrates@1.5.
|
|
67
|
+
npx --yes opensocrates@1.5.2 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.2-account.zip
|
|
64
68
|
```
|
|
65
69
|
|
|
66
70
|
随后在 Claude 的 **Customize → Skills** 上传并启用。替换已有 OpenSocrates
|
|
@@ -81,18 +85,21 @@ npx --yes opensocrates@1.5.1 export --host claude-chat --output /absolute/path/t
|
|
|
81
85
|
必须显式指定。新集成不新增 purge、信任重置或自动更新操作。
|
|
82
86
|
[设置指南(英文)](docs/setup-guide.md)说明后续界面步骤;
|
|
83
87
|
[Mac 指南](docs/macos-v1.5.md)和 [Windows 指南](docs/windows-v1.5.md)保留
|
|
84
|
-
v1.5.0 的安装与恢复基线,当前命令请使用上述 1.5.
|
|
88
|
+
v1.5.0 的安装与恢复基线,当前命令请使用上述 1.5.2 版本。
|
|
85
89
|
|
|
86
90
|
## 指令语言
|
|
87
91
|
|
|
88
92
|
优先使用明确指定的语言,其次使用已保存的语言偏好,再根据当前输入的文字
|
|
89
|
-
|
|
93
|
+
判断。含平假名或片假名时选择日语;否则泰文占优时选择泰语,韩文占优时选择韩语,汉字占优时
|
|
90
94
|
选择中文。只有汉字的输入无法可靠区分中文与日语,默认使用中文,需要日语
|
|
91
|
-
|
|
95
|
+
时应明确指定。法语、德语、意大利语、西班牙语和葡萄牙语共享拉丁文字,需要明确指定或
|
|
96
|
+
保存语言偏好;不会根据文字可靠猜测这些语言。空输入、未知文字或数量持平
|
|
97
|
+
时回退到英文。葡萄牙语使用通用 `pt` 代码和巴西拼写,不宣称各地区单独支持。
|
|
92
98
|
|
|
93
99
|
推理指令语言与 npm 安装器的命令输出、应用界面语言分开。本次更新不承诺
|
|
94
100
|
翻译每条安装器消息。关于运行时 `locale` 偏好命令和显式 JSON 请求,请参阅
|
|
95
|
-
[语言与范围指南(英文)](docs/v1.5.
|
|
101
|
+
[语言与范围指南(英文)](docs/v1.5.2.md)及
|
|
102
|
+
[语言设置(英文)](docs/settings.md)。
|
|
96
103
|
|
|
97
104
|
## 使用标注与隐私
|
|
98
105
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.5.
|
|
1
|
+
1.5.2
|
|
@@ -15,7 +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"];
|
|
18
|
+
const LOCALES = ["en", "ko", "zh", "ja", "fr", "de", "it", "es", "pt", "th"];
|
|
19
19
|
const MAX_FILES = 10_000;
|
|
20
20
|
const MAX_JSON_BYTES = 8 * 1024 * 1024;
|
|
21
21
|
|
|
@@ -157,7 +157,8 @@ function packageLocales(version) {
|
|
|
157
157
|
const match = /^(\d+)\.(\d+)\.(\d+)$/u.exec(version);
|
|
158
158
|
if (!match) fail("package_identity_mismatch", "Invalid package version.");
|
|
159
159
|
const [major, minor, patch] = match.slice(1).map(Number);
|
|
160
|
-
|
|
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);
|
|
161
162
|
}
|
|
162
163
|
function canonical(manifest, expected, skillRoot) {
|
|
163
164
|
const locales = packageLocales(manifest.product_version);
|
|
@@ -165,12 +166,17 @@ function canonical(manifest, expected, skillRoot) {
|
|
|
165
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.");
|
|
166
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.");
|
|
167
168
|
const seen = new Set();
|
|
169
|
+
const procedurePaths = new Set();
|
|
168
170
|
for (const row of manifest.canonical_methods) {
|
|
169
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.");
|
|
170
172
|
const name = `${skillRoot}/references/decision/methods/${row.locale}/${row.method_id}.md`;
|
|
171
173
|
const key = `${row.locale}:${row.method_id}`;
|
|
172
174
|
if (row.path !== name || seen.has(key) || expected[name] !== digest(row.sha256)) fail("invalid_canonical_content", "Canonical procedure path or hash is inconsistent.");
|
|
173
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.");
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
async function verifyPackage(root, host, version) {
|
|
@@ -211,8 +217,11 @@ async function verifyPackage(root, host, version) {
|
|
|
211
217
|
const locales = packageLocales(version);
|
|
212
218
|
const localeIds = Object.fromEntries(locales.map((locale) => [locale, new Set()]));
|
|
213
219
|
for (const name of Object.keys(expected)) {
|
|
214
|
-
const match = /^skills\/opensocrates\/references\/decision\/methods\/(en|ko|zh|ja)\/([a-z0-9-]+)\.md$/u.exec(name);
|
|
215
|
-
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
|
+
}
|
|
216
225
|
}
|
|
217
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.");
|
|
218
227
|
} else {
|
|
@@ -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",
|