agent-sin 0.1.0 → 0.1.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 CHANGED
@@ -1,17 +1,39 @@
1
- ## CHANGELOG
1
+ ## Changelog
2
2
 
3
- agent-sin のリリース履歴。形式は [Keep a Changelog](https://keepachangelog.com/ja/1.1.0/) ベース、バージョニングは [Semantic Versioning](https://semver.org/lang/ja/) に従う。
3
+ Release history of `agent-sin`. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses [Semantic Versioning](https://semver.org/).
4
4
 
5
- エントリ種別:
5
+ Entry types:
6
6
 
7
- - **Added** — 新機能
8
- - **Changed** — 既存挙動の変更(互換維持)
9
- - **Deprecated** — 廃止予定(次メジャーで削除)
10
- - **Removed** — 削除(破壊的変更)
11
- - **Fixed** — バグ修正
12
- - **Security** — セキュリティ修正
7
+ - **Added** — new features
8
+ - **Changed** — changes to existing behavior (backwards-compatible)
9
+ - **Deprecated** — features to be removed in the next major release
10
+ - **Removed** — breaking changes
11
+ - **Fixed** — bug fixes
12
+ - **Security** — security fixes
13
13
 
14
- 互換性ポリシーは [公式ドキュメント](https://agent.shingoirie.com/versioning) を参照。
14
+ See the [compatibility policy](https://agent.shingoirie.com/versioning) for details.
15
+
16
+ ---
17
+
18
+ ## [0.1.2] — 2026-05-14
19
+
20
+ ### Fixed
21
+
22
+ - `agent-sin setup` no longer writes `defaults.locale` into `config.toml`. The locale is now resolved fresh on every run from `AGENT_SIN_LOCALE` or the OS-level Intl locale. This prevents a stale `locale = "ja"` from being pinned at first setup (for example via `curl ... install.sh | bash` on a Mac whose shell still inherits `LANG=ja_JP.UTF-8`) and surviving subsequent re-installs.
23
+ - Existing workspaces with the wrong locale: remove the `locale` line from `~/.agent-sin/config.toml`, or run with `AGENT_SIN_LOCALE=en`. `sed -i '' '/^locale = /d' ~/.agent-sin/config.toml` works on macOS.
24
+
25
+ ---
26
+
27
+ ## [0.1.1] — 2026-05-14
28
+
29
+ ### Fixed
30
+
31
+ - Locale auto-detection now prefers the OS-level system locale (Intl) over the shell's `LANG`/`LC_ALL`. A Mac switched to English in System Settings could still inherit `LANG=ja_JP.UTF-8` from a stale shell environment, which persisted `locale = "ja"` into `config.toml` on first setup and pinned the UI to Japanese.
32
+ - If you already have a workspace with the wrong locale, remove the `locale` line from `~/.agent-sin/config.toml` and rerun, or start with `AGENT_SIN_LOCALE=en agent-sin ...`.
33
+
34
+ ### Changed
35
+
36
+ - Windows installer one-liner now runs through `powershell -NoProfile -ExecutionPolicy Bypass -Command "irm … | iex"` so the default execution policy does not block the install.
15
37
 
16
38
  ---
17
39
 
@@ -19,15 +41,16 @@ agent-sin のリリース履歴。形式は [Keep a Changelog](https://keepachan
19
41
 
20
42
  ### Added
21
43
 
22
- - 初回公開リリース。`agent-sin` CLI、スキル ランタイム(Python / TypeScript)、Discord botBuilder モード、ビルトインスキル、Codex / OpenAI / Gemini / Claude Code プロバイダ統合、ローカルメモリ/インデックス/スケジューラの基盤。
23
- - Telegram bot 連携(`src/telegram/`)。Discord と同じ chat / build / intent ルーティングを Telegram でも利用可能に。
24
- - Discord 添付ファイル取り込み(テキスト/画像)と、ビルド進捗の detail モード。
25
- - profile memory(`soul.md` / `user.md` / `memory.md`)と日次メモの自動昇格(`daily-memory-promotion`)。
26
- - `profile-save` ビルトインスキル。
27
- - `install.sh` によるセットアップ補助。
28
- - 互換性ポリシー([versioning](https://agent.shingoirie.com/versioning))と CHANGELOG。
44
+ - Initial public release. `agent-sin` CLI, skill runtimes (Python / TypeScript), Discord bot, Builder mode, built-in skills, Codex / OpenAI / Gemini / Claude Code provider integrations, and the local memory / index / scheduler foundation.
45
+ - Telegram bot integration (`src/telegram/`). The same chat / build / intent routing used by Discord is now available on Telegram.
46
+ - Discord attachment ingestion (text / images) and a detail mode for build progress.
47
+ - Profile memory (`soul.md` / `user.md` / `memory.md`) with automatic promotion of daily notes (`daily-memory-promotion`).
48
+ - `profile-save` built-in skill.
49
+ - `install.sh` for one-shot setup.
50
+ - Windows install guidance uses a one-run PowerShell execution-policy bypass, so default script policy does not block first install.
51
+ - Compatibility policy ([versioning](https://agent.shingoirie.com/versioning)) and this changelog.
29
52
 
30
53
  ### Changed
31
54
 
32
- - ビルドモード進入時の固定文言「作業を開始しました」を廃止し、detail モード以外は進捗メッセージを送らない静かな挙動に変更。
33
- - Discord/Telegram のビルド進捗は `AGENT_SIN_DISCORD_PROGRESS_DETAIL=1` / `AGENT_SIN_TELEGRAM_PROGRESS_DETAIL=1` または runtime 設定の `progress_detail=true` でのみ詳細表示。
55
+ - Removed the fixed "started working" announcement when entering build mode. Outside detail mode, no progress message is sent — the agent stays quiet.
56
+ - Build progress on Discord / Telegram is shown in detail only when `AGENT_SIN_DISCORD_PROGRESS_DETAIL=1` / `AGENT_SIN_TELEGRAM_PROGRESS_DETAIL=1` is set, or `progress_detail=true` is configured in the runtime settings.
package/README.md CHANGED
@@ -10,9 +10,9 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://agent.shingoirie.com">Website</a> ·
14
- <a href="https://agent.shingoirie.com/overview">Docs</a> ·
15
- <a href="https://agent.shingoirie.com/getting-started">Quick Start</a>
13
+ <a href="https://agent.shingoirie.com?lang=en">Website</a> ·
14
+ <a href="https://agent.shingoirie.com/overview?lang=en">Docs</a> ·
15
+ <a href="https://agent.shingoirie.com/getting-started?lang=en">Quick Start</a>
16
16
  </p>
17
17
 
18
18
  ---
@@ -55,27 +55,33 @@ curl -fsSL https://agent.shingoirie.com/install.sh | bash
55
55
  **Windows (PowerShell)**
56
56
 
57
57
  ```powershell
58
- irm https://agent.shingoirie.com/install.ps1 | iex
58
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://agent.shingoirie.com/install.ps1 | iex"
59
59
  ```
60
60
 
61
+ If you downloaded `install.ps1` first, run it with `powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1` to avoid Windows' default script policy for that one run.
62
+
61
63
  The installer sets up `agent-sin`, runs initial setup, and registers a login service. Workspace data lives in `~/.agent-sin/`.
62
64
 
63
- Full walkthrough: [Getting Started](https://agent.shingoirie.com/getting-started).
65
+ Full walkthrough: [Getting Started](https://agent.shingoirie.com/getting-started?lang=en).
64
66
 
65
67
  ## Documentation
66
68
 
67
- - [Overview](https://agent.shingoirie.com/overview) — the big picture
68
- - [Getting Started](https://agent.shingoirie.com/getting-started) — install to first conversation
69
- - [Concepts](https://agent.shingoirie.com/concepts) — design and Runtime
70
- - [Skill Authoring](https://agent.shingoirie.com/skill-authoring) — write your own skill
71
- - [Built-in Skills](https://agent.shingoirie.com/built-in-skills) — bundled skills
72
- - [CLI Reference](https://agent.shingoirie.com/cli) — every command
73
- - [Configuration](https://agent.shingoirie.com/configuration) — settings and API keys
74
- - [Gateway & Ops](https://agent.shingoirie.com/operations) — always-on, schedules, notifications, backup
75
- - [Discord](https://agent.shingoirie.com/discord) · [Telegram](https://agent.shingoirie.com/telegram) — channel integrations
76
- - [Versioning](https://agent.shingoirie.com/versioning) — compatibility and release policy
69
+ - [Overview](https://agent.shingoirie.com/overview?lang=en) — the big picture
70
+ - [Getting Started](https://agent.shingoirie.com/getting-started?lang=en) — install to first conversation
71
+ - [Concepts](https://agent.shingoirie.com/concepts?lang=en) — design and Runtime
72
+ - [Skill Authoring](https://agent.shingoirie.com/skill-authoring?lang=en) — write your own skill
73
+ - [Built-in Skills](https://agent.shingoirie.com/built-in-skills?lang=en) — bundled skills
74
+ - [CLI Reference](https://agent.shingoirie.com/cli?lang=en) — every command
75
+ - [Configuration](https://agent.shingoirie.com/configuration?lang=en) — settings and API keys
76
+ - [Gateway & Ops](https://agent.shingoirie.com/operations?lang=en) — always-on, schedules, notifications, backup
77
+ - [Discord](https://agent.shingoirie.com/discord?lang=en) · [Telegram](https://agent.shingoirie.com/telegram?lang=en) — channel integrations
78
+ - [Versioning](https://agent.shingoirie.com/versioning?lang=en) — compatibility and release policy
77
79
  - [Changelog](CHANGELOG.md) — release history
78
80
 
81
+ ## Also by the author
82
+
83
+ [**KingCoding**](https://kingcode.shingoirie.com/en) — Claude Code and Codex, in one simple UI. A Mac app that unifies the two coding agents, runs tasks hands-free in King Mode, and lets you check progress from your phone.
84
+
79
85
  ## License
80
86
 
81
87
  MIT
@@ -131,32 +131,14 @@ export function defaultConfig(workspace = defaultWorkspace()) {
131
131
  event_log_retention_days: 90,
132
132
  defaults: {
133
133
  note_format: "daily_markdown",
134
- locale: detectInstallLocale(),
134
+ // locale is intentionally not persisted: every run detects it fresh from
135
+ // AGENT_SIN_LOCALE / Intl, so users who switch their OS language never
136
+ // get stuck with a stale ja/en pinned at first setup.
135
137
  },
136
138
  chat_model_id: "codex-low",
137
139
  builder_model_id: "codex-xhigh",
138
140
  };
139
141
  }
140
- function detectInstallLocale() {
141
- const explicit = (process.env.AGENT_SIN_LOCALE || "").trim().toLowerCase();
142
- if (explicit === "ja" || explicit === "en")
143
- return explicit;
144
- const lang = (process.env.LC_ALL || process.env.LANG || "").trim();
145
- if (lang) {
146
- return /^ja(_|$|-)/i.test(lang) ? "ja" : "en";
147
- }
148
- try {
149
- const intlLocale = (Intl.DateTimeFormat().resolvedOptions().locale || "").toLowerCase();
150
- if (/^ja(-|$)/.test(intlLocale))
151
- return "ja";
152
- if (/^en(-|$)/.test(intlLocale))
153
- return "en";
154
- }
155
- catch {
156
- // ignored
157
- }
158
- return undefined;
159
- }
160
142
  export function defaultModels() {
161
143
  return {
162
144
  roles: {
@@ -7,9 +7,8 @@
7
7
  * 1. AGENT_SIN_LOCALE env var (explicit override)
8
8
  * 2. Per-turn locale inferred from the current user message
9
9
  * 3. Configured locale via setLocale()
10
- * 4. LC_ALL or LANG starting with `ja` → `ja` (Unix shells)
11
- * 5. Intl.DateTimeFormat().resolvedOptions().locale starting with `ja`
12
- * → `ja` (cross-platform OS locale, including Windows where step 2 is empty)
10
+ * 4. Intl.DateTimeFormat().resolvedOptions().locale (OS-level system locale)
11
+ * 5. LC_ALL or LANG (Unix shell locale, only consulted when Intl is unset)
13
12
  * 6. Default: `en`
14
13
  */
15
14
  export type Locale = "en" | "ja";
package/dist/core/i18n.js CHANGED
@@ -59,24 +59,27 @@ export function detectLocale() {
59
59
  if (active) {
60
60
  return active;
61
61
  }
62
- // Respect an explicitly-set Unix shell locale even when it is not Japanese
63
- // (a user who typed `export LANG=en_US.UTF-8` wants English).
64
- const lang = (process.env.LC_ALL || process.env.LANG || "").trim();
65
- if (lang) {
66
- active = /^ja(_|$|-)/i.test(lang) ? "ja" : "en";
67
- return active;
68
- }
69
- // No shell-level locale set (typical on Windows or stripped-down envs):
70
- // fall back to the OS-reported locale via the Intl API.
62
+ // Prefer the OS-reported locale via the Intl API. The shell's LANG often
63
+ // carries stale values when users switch their macOS system language, which
64
+ // would otherwise force ja when the user has already moved to English.
71
65
  try {
72
66
  const intlLocale = (Intl.DateTimeFormat().resolvedOptions().locale || "").toLowerCase();
73
67
  if (/^ja(-|$)/.test(intlLocale)) {
74
68
  active = "ja";
75
69
  return active;
76
70
  }
71
+ if (/^en(-|$)/.test(intlLocale)) {
72
+ active = "en";
73
+ return active;
74
+ }
77
75
  }
78
76
  catch {
79
- // Intl API can fail in stripped-down builds; fall through to default.
77
+ // Intl API can fail in stripped-down builds; fall through to LANG.
78
+ }
79
+ const lang = (process.env.LC_ALL || process.env.LANG || "").trim();
80
+ if (lang) {
81
+ active = /^ja(_|$|-)/i.test(lang) ? "ja" : "en";
82
+ return active;
80
83
  }
81
84
  active = "en";
82
85
  return active;
package/install.ps1 CHANGED
@@ -1,11 +1,10 @@
1
1
  # Agent-Sin installer for Windows.
2
2
  #
3
3
  # Usage:
4
- # irm https://<install-host>/install.ps1 | iex
5
- # $args = @('--yes'); irm https://<install-host>/install.ps1 | iex
4
+ # powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://<install-host>/install.ps1 | iex"
6
5
  #
7
6
  # Or after downloading:
8
- # powershell -ExecutionPolicy Bypass -File .\install.ps1 -Yes
7
+ # powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Yes
9
8
  #
10
9
  # Equivalent of install.sh: installs the agent-sin command globally,
11
10
  # runs `agent-sin setup`, and registers the Task Scheduler logon task.
@@ -41,8 +40,8 @@ if (Use-Japanese) {
41
40
  Agent-Sin installer (Windows)
42
41
 
43
42
  使い方:
44
- irm https://<install-host>/install.ps1 | iex
45
- powershell -ExecutionPolicy Bypass -File .\install.ps1 [-Yes] [-Model <id>] [-Builder <id>]
43
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://<install-host>/install.ps1 | iex"
44
+ powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 [-Yes] [-Model <id>] [-Builder <id>]
46
45
 
47
46
  オプション:
48
47
  -Yes setup をプロンプトなしで実行
@@ -58,8 +57,8 @@ Agent-Sin installer (Windows)
58
57
  Agent-Sin installer (Windows)
59
58
 
60
59
  Usage:
61
- irm https://<install-host>/install.ps1 | iex
62
- powershell -ExecutionPolicy Bypass -File .\install.ps1 [-Yes] [-Model <id>] [-Builder <id>]
60
+ powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://<install-host>/install.ps1 | iex"
61
+ powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 [-Yes] [-Model <id>] [-Builder <id>]
63
62
 
64
63
  Options:
65
64
  -Yes Run setup without prompts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-sin",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Program Skill-first personal AI agent OS CLI.",
5
5
  "type": "module",
6
6
  "license": "MIT",