wire-sdk

SkillAI & models

Lets your agent set up and organize an automated company structure run by AI.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the wire-sdk skill

About this skill

Build an automation organization as an AI company

What this skill tells your AI

The instructions your AI receives, as published by toktokhan-dev/agent-company in templates/app-in-toss/files/agents/ui-builder/skills/wire-sdk/SKILL.md and read by ahel’s review.

SDK 는 @apps-in-toss/web-framework 에서 도메인별로 가져온다.

import { Device, Storage, Share, Screen, SafeArea } from '@apps-in-toss/web-framework';

전체 목록: https://developers-apps-in-toss.toss.im/documentation/sdk/domains-api.md

권한이 필요한 기능

두 가지를 반드시 지킨다. 둘 다 심사 항목이다.

  1. 권한을 요청하기 전에 왜 필요한지 먼저 알린다
  2. 권한이 거부돼도 기능이 끝까지 동작한다 (대체 경로를 만든다)
// 위치 권한이 거부되면 수동 입력으로 진행한다
const location = await Device.getLocation().catch(() => null);
if (location == null) {
  navigate('/address-manual');
  return;
}

granite.config.ts 의 permissions 에 실제로 쓰는 것만 적는다. 쓰지 않는 권한을 요청하면 반려된다.

저장소

await Storage.setItem('key', value);
const saved = await Storage.getItem('key');

"앱을 재시작해도 유지된다" 는 수용 기준이 있으면 여기에 저장한다. 메모리 상태로는 충족하지 못한다.

공유

await Share.createLink({ /* ... */ });

intoss:// 만 쓴다. intoss-private:// 는 금지이고 preflight 가 error 로 잡는다.

Safe Area

CSS 의 env(safe-area-inset-*) 로 1차 대응이 되어 있다. 런타임 값이 필요하면:

const insets = await SafeArea.getSafeAreaInsets();

화면 닫기

Screen.close();

첫 화면의 뒤로가기에 연결한다. 하위 화면에서 부르면 사용자가 흐름 중간에 튕겨 나간다.

소켓

wss:// 만 쓴다. ws:// 는 preflight 가 error 로 잡는다.

하지 말아야 할 것

  • 브라우저 히스토리를 조작하는 리다이렉트
  • eval · new Function · 원격 코드 로딩
  • 다른 앱 설치 유도, 자사 웹으로 보내기

완료 확인

pnpm typecheck
pnpm preflight

출력

  • 붙인 SDK 도메인과 이유
  • granite.config.ts 에 추가한 권한 (있다면)
  • 권한 거부 시 대체 경로

Signals

GitHub stars
81
Forks
27
Last commit
Aug 2026
Advanced
Item type
skill
Key
wire-sdk
Source
github.com/toktokhan-dev/agent-company