์ฝ˜ํ…์ธ ๋กœ ์ด๋™

์–ธ์–ด ์„ ํƒ

ํ˜„์žฌ ์–ธ์–ด: ํ•œ๊ตญ์–ด

CLI configuration previews and writes

The authenticated /api/cli-tools/config and /api/cli-tools/apply routes return non-cacheable, redacted previews. They preserve the existing authentication and authorization checks. Request bodies reject unknown fields. An explicit base URL must use HTTP(S) without embedded username/password credentials; when omitted, the serverโ€™s configured base URL is used.

For a batch preview, GET /api/cli-tools/config accepts an optional baseUrl query parameter and takes the configuration credential from the x-omniroute-config-api-key header. Credentials in the query string are rejected. POST /api/cli-tools/config accepts toolId, baseUrl, apiKey and optional model in its JSON body. Responses use Cache-Control: no-store on both success and error paths. Preview text is not a usable credential-bearing configuration.

Preview projection redacts serialized caller credentials and credential fields already present in merged JSONC, TOML or YAML profiles. The apply route writes the original configuration; preview redaction does not alter the on-disk values. Malformed JSON is rejected with 400. Public error responses use the standard sanitized error envelope.

Applying a configuration uses a private temporary file in the destination directory, flushes it, and atomically renames it into place. Files and backups use mode 0600; permissions are set on the owned descriptor before rename. Final destination symlinks and non-regular files are refused. Codex and OpenCode reads also refuse final-path symlinks before merging existing TOML/JSONC. This does not claim protection against an adversary who controls the parent directory.

The container write guard remains active: an unsafe ephemeral destination returns 422 and directs the operator to the host-side setup command. A dry run remains available and does not write files. See CLI integrations for the supported host-side setup commands and error sanitization for the public error contract.


undefined (a58000c7685f)

HagiCode

HagiCode๋Š” ์—์ด์ „ํŠธ ์ฝ”๋”ฉ ์ž‘์—… ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ํ’๋ถ€ํ•˜๊ณ  ํŽธ๋ฆฌํ•œ UI ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ๊ณ„ํš ์ˆ˜๋ฆฝ, ์—์ด์ „ํŠธ ์‹คํ–‰, ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๊ฐœ๋ฐœ์„ ๋” ํฅ๋ฏธ๋กœ์šด ๊ฒฝํ—˜์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

ํ’๋ถ€ํ•˜๊ณ  ํŽธ๋ฆฌํ•œ UI ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ๊ณ„ํš๋ถ€ํ„ฐ ํ”„๋กœ์ ํŠธ ์ž‘์—…๊นŒ์ง€ ์‰ฝ๊ฒŒ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HagiCode ๋ฐฉ๋ฌธ๋ฌธ์„œ ์ฝ๊ธฐ
  • ์Šค๋งˆํŠธOpenSpec ์›Œํฌํ”Œ๋กœ๋Š” ์˜๋„๋ฅผ ์ œ์•ˆ, ์„ค๊ณ„, ์ž‘์—…์„ ๊ฑฐ์ณ ๋ฐฐํฌ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ํšจ์œจ์ ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์‹คํ–‰์œผ๋กœ ์กฐ์‚ฌ, ๊ตฌํ˜„, ๊ฒ€ํ† ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ์ €์žฅ์†Œ์™€ ์ต์ˆ™ํ•œ Agent CLI๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํฅ๋ฏธ๋กœ์šดํ’๋ถ€ํ•˜๊ณ  ํŽธ๋ฆฌํ•œ UI ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ๊ณ„ํš ์ˆ˜๋ฆฝ, ์—์ด์ „ํŠธ ์‹คํ–‰, ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows์šฉ ๋‹ค์šด๋กœ๋“œ

Microsoft Store์—์„œ ๋ฐ›๊ธฐ๋ชจ๋“  ๋‹ค์šด๋กœ๋“œ

์•„์ด๋””์–ด๋ฅผ ์‹ค์ œ๋กœ ๋ฐฐํฌ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ.

HagiCode๋Š” ์—์ด์ „ํŠธ ์ฝ”๋”ฉ ์ž‘์—… ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. OpenSpec ์›Œํฌํ”Œ๋กœ๋กœ ๋ณ€๊ฒฝ์„ ๊ณ„ํšํ•˜๊ณ , ๋‹ค์ค‘ ์—์ด์ „ํŠธ ์‹คํ–‰์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ, Hero Scenario๋กœ ๊ธด ์ž‘์—…์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ•œ๋ˆˆ์— ๋ณด์—ฌ ์•„์ด๋””์–ด๋ฅผ ์‹ค์ œ๋กœ ๋ฐฐํฌ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์Šค๋งˆํŠธ
OpenSpec ์›Œํฌํ”Œ๋กœ๋Š” ์˜๋„๋ฅผ ์ œ์•ˆ๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
ํšจ์œจ์ 
๋‹ค์ค‘ ์—์ด์ „ํŠธ ์‹คํ–‰์œผ๋กœ ์กฐ์‚ฌ, ๊ตฌํ˜„, ๊ฒ€ํ† ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ฆ๊ฑฐ์šด
ํŽธ๋ฆฌํ•œ UI ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ๊ณ„ํš, ์—์ด์ „ํŠธ ์‹คํ–‰, ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.