@remotedraw/cli 0.2.0 → 0.2.1
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/dist/cli.d.ts +5 -37
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -71
- package/dist/generated/agent-skill.d.ts +1 -1
- package/dist/generated/agent-skill.d.ts.map +1 -1
- package/dist/generated/agent-skill.js +1 -1
- package/dist/locales/en.d.ts +4 -10
- package/dist/locales/en.d.ts.map +1 -1
- package/dist/locales/en.js +4 -10
- package/dist/locales/index.d.ts +5 -11
- package/dist/locales/index.d.ts.map +1 -1
- package/dist/locales/nl.d.ts.map +1 -1
- package/dist/locales/nl.js +4 -10
- package/package.json +1 -1
package/dist/cli.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type WizardDefinition, type WizardTerminal } from "./setup-wizard.js";
|
|
|
2
2
|
import { type CloudRuntime } from "./cloud.js";
|
|
3
3
|
import { type UpdateRuntime } from "./update.js";
|
|
4
4
|
export declare const CLI_VERSION: string;
|
|
5
|
-
export declare const REMOTEDRAW_SDK_RANGE = "^0.
|
|
5
|
+
export declare const REMOTEDRAW_SDK_RANGE = "^0.2.0";
|
|
6
6
|
export declare const REMOTEDRAW_CLI_RANGE = "^0.2.0";
|
|
7
7
|
export type CliResult = {
|
|
8
8
|
exitCode: number;
|
|
@@ -40,7 +40,7 @@ export type CliRuntime = CloudRuntime & UpdateRuntime & {
|
|
|
40
40
|
export declare const targetChoices: readonly ["web", "desktop", "ios", "headless"];
|
|
41
41
|
export declare const senderChoices: readonly ["remotedraw-ios", "embedded-web", "own-ios", "headless"];
|
|
42
42
|
export declare const sdkChoices: readonly ["react", "svelte", "js", "swift", "headless"];
|
|
43
|
-
declare const presetChoices: readonly ["
|
|
43
|
+
declare const presetChoices: readonly ["approval", "sketch", "photoMarkup", "pdfMarkup", "mapMarkup", "screenMarkup", "designReview", "pointer"];
|
|
44
44
|
declare const packageManagerChoices: readonly ["npm", "pnpm", "yarn", "bun"];
|
|
45
45
|
type TargetChoice = (typeof targetChoices)[number];
|
|
46
46
|
type SenderChoice = (typeof senderChoices)[number];
|
|
@@ -74,35 +74,12 @@ type PayloadOptions = {
|
|
|
74
74
|
export declare function createSessionPayload(options: PayloadOptions): {
|
|
75
75
|
expiresInMs?: number;
|
|
76
76
|
externalId: string;
|
|
77
|
-
markupPreset: "
|
|
77
|
+
markupPreset: "approval" | "sketch" | "photoMarkup" | "pdfMarkup" | "mapMarkup" | "screenMarkup" | "designReview" | "pointer";
|
|
78
78
|
target: {
|
|
79
|
+
kind: string;
|
|
80
|
+
label: string;
|
|
79
81
|
metadata: {
|
|
80
82
|
descriptor: {
|
|
81
|
-
version: number;
|
|
82
|
-
privacy: string;
|
|
83
|
-
surfaceRole: string;
|
|
84
|
-
inputIntent: "signature" | "initials";
|
|
85
|
-
label: string;
|
|
86
|
-
components: {
|
|
87
|
-
id: "signature" | "initials";
|
|
88
|
-
role: string;
|
|
89
|
-
inputIntent: "signature" | "initials";
|
|
90
|
-
required: boolean;
|
|
91
|
-
bounds: {
|
|
92
|
-
minX: number;
|
|
93
|
-
minY: number;
|
|
94
|
-
maxX: number;
|
|
95
|
-
maxY: number;
|
|
96
|
-
};
|
|
97
|
-
}[];
|
|
98
|
-
phoneHints: {
|
|
99
|
-
preferredLayout: string;
|
|
100
|
-
preferredTool: string;
|
|
101
|
-
primaryActionLabel: string;
|
|
102
|
-
showUndo: boolean;
|
|
103
|
-
showClear: boolean;
|
|
104
|
-
};
|
|
105
|
-
} | {
|
|
106
83
|
version: number;
|
|
107
84
|
privacy: string;
|
|
108
85
|
surfaceRole: string;
|
|
@@ -115,7 +92,6 @@ export declare function createSessionPayload(options: PayloadOptions): {
|
|
|
115
92
|
showUndo?: never;
|
|
116
93
|
showClear?: never;
|
|
117
94
|
};
|
|
118
|
-
components?: never;
|
|
119
95
|
} | {
|
|
120
96
|
version: number;
|
|
121
97
|
privacy: string;
|
|
@@ -129,16 +105,8 @@ export declare function createSessionPayload(options: PayloadOptions): {
|
|
|
129
105
|
showUndo: boolean;
|
|
130
106
|
showClear: boolean;
|
|
131
107
|
};
|
|
132
|
-
components?: never;
|
|
133
108
|
};
|
|
134
109
|
};
|
|
135
|
-
inputMapping?: "surface";
|
|
136
|
-
coordinateSpace?: {
|
|
137
|
-
width: number;
|
|
138
|
-
height: number;
|
|
139
|
-
};
|
|
140
|
-
kind: string;
|
|
141
|
-
label: string;
|
|
142
110
|
};
|
|
143
111
|
};
|
|
144
112
|
/**
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,gBAAgB,EAGrB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAYL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAqBpB,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,WAAW,QAGT,CAAC;AAQhB,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,YAAY,GACnC,aAAa,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEJ,eAAO,MAAM,aAAa,gDAAiD,CAAC;AAC5E,eAAO,MAAM,aAAa,oEAKhB,CAAC;AACX,eAAO,MAAM,UAAU,yDAMb,CAAC;AACX,QAAA,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,OAAO,EAIL,KAAK,gBAAgB,EAGrB,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAYL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAqBpB,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,WAAW,QAGT,CAAC;AAQhB,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACpD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,YAAY,GACnC,aAAa,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEJ,eAAO,MAAM,aAAa,gDAAiD,CAAC;AAC5E,eAAO,MAAM,aAAa,oEAKhB,CAAC;AACX,eAAO,MAAM,UAAU,yDAMb,CAAC;AACX,QAAA,MAAM,aAAa,qHAST,CAAC;AAOX,QAAA,MAAM,qBAAqB,yCAA0C,CAAC;AAEtE,KAAK,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACnD,KAAK,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,KAAK,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,KAAK,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,oBAAoB,CAAC;CACtC,CAAC;AAaF,wBAAgB,iBAAiB,IAAI,UAAU,CAgC9C;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,MAAM,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAoB,sCASnD;AAsND,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,UAAgC,GACxC,OAAO,CAAC,SAAS,CAAC,CAmGpB;AA8fD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,qBAOpD;AA0gDD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAqDzD;AAuoCD,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB3D;AA4GD;;;;;GAKG;AACH,wBAAgB,kBAAkB,WAEjC"}
|
package/dist/cli.js
CHANGED
|
@@ -23,7 +23,7 @@ export const CLI_VERSION = typeof packageMetadata.version === "string"
|
|
|
23
23
|
// private, and would silently accept a future breaking major once they were
|
|
24
24
|
// not. tests/generated-manifest.test.ts cross-checks every range below against
|
|
25
25
|
// the workspace manifests.
|
|
26
|
-
export const REMOTEDRAW_SDK_RANGE = "^0.
|
|
26
|
+
export const REMOTEDRAW_SDK_RANGE = "^0.2.0";
|
|
27
27
|
export const REMOTEDRAW_CLI_RANGE = "^0.2.0";
|
|
28
28
|
export const targetChoices = ["web", "desktop", "ios", "headless"];
|
|
29
29
|
export const senderChoices = [
|
|
@@ -40,8 +40,6 @@ export const sdkChoices = [
|
|
|
40
40
|
"headless",
|
|
41
41
|
];
|
|
42
42
|
const presetChoices = [
|
|
43
|
-
"signature",
|
|
44
|
-
"initials",
|
|
45
43
|
"approval",
|
|
46
44
|
"sketch",
|
|
47
45
|
"photoMarkup",
|
|
@@ -641,13 +639,13 @@ function guideText() {
|
|
|
641
639
|
"",
|
|
642
640
|
t("guide.intro"),
|
|
643
641
|
t("guide.path.webIos"),
|
|
644
|
-
" remotedraw init --target web --sender remotedraw-ios --sdk react --preset
|
|
642
|
+
" remotedraw init --target web --sender remotedraw-ios --sdk react --preset sketch",
|
|
645
643
|
"",
|
|
646
644
|
t("guide.path.webOwned"),
|
|
647
645
|
" remotedraw init --target web --sender embedded-web --sdk react --preset sketch",
|
|
648
646
|
"",
|
|
649
647
|
t("guide.path.svelteIos"),
|
|
650
|
-
" remotedraw init --target web --sender remotedraw-ios --sdk svelte --preset
|
|
648
|
+
" remotedraw init --target web --sender remotedraw-ios --sdk svelte --preset sketch",
|
|
651
649
|
"",
|
|
652
650
|
t("guide.path.desktop"),
|
|
653
651
|
" remotedraw init --target desktop --sender remotedraw-ios --sdk js --preset sketch",
|
|
@@ -1154,7 +1152,7 @@ async function devCommand(args, runtime) {
|
|
|
1154
1152
|
t("dev.step1.detail"),
|
|
1155
1153
|
"",
|
|
1156
1154
|
t("dev.step2"),
|
|
1157
|
-
` remotedraw create-input --preset
|
|
1155
|
+
` remotedraw create-input --preset sketch --api-base-url ${apiBaseUrl}`,
|
|
1158
1156
|
"",
|
|
1159
1157
|
t("dev.step3"),
|
|
1160
1158
|
t("dev.step3.detail"),
|
|
@@ -1175,7 +1173,7 @@ async function createInputCommand(args, runtime) {
|
|
|
1175
1173
|
if (parsed.booleans.has("help"))
|
|
1176
1174
|
return ok(createInputHelpText());
|
|
1177
1175
|
const projectEnv = await environmentForProject(runtime.cwd, runtime);
|
|
1178
|
-
const preset = choice(readString(parsed, "preset") ?? "
|
|
1176
|
+
const preset = choice(readString(parsed, "preset") ?? "sketch", presetChoices, "preset");
|
|
1179
1177
|
const apiBaseUrl = readString(parsed, "api-base-url") ??
|
|
1180
1178
|
projectEnv.REMOTEDRAW_API_BASE_URL ??
|
|
1181
1179
|
DEFAULT_REMOTEDRAW_API_BASE_URL;
|
|
@@ -1527,7 +1525,7 @@ async function promptForNewProject(parsed, runtime) {
|
|
|
1527
1525
|
const preset = readString(parsed, "preset") == null
|
|
1528
1526
|
? await prompts.select({
|
|
1529
1527
|
message: t("field.preset"),
|
|
1530
|
-
defaultValue: "
|
|
1528
|
+
defaultValue: "sketch",
|
|
1531
1529
|
choices: presetPromptChoices(),
|
|
1532
1530
|
})
|
|
1533
1531
|
: choice(readString(parsed, "preset"), presetChoices, "preset");
|
|
@@ -1788,16 +1786,16 @@ function sdkPromptChoices(target, sender) {
|
|
|
1788
1786
|
}
|
|
1789
1787
|
function presetPromptChoices() {
|
|
1790
1788
|
return [
|
|
1791
|
-
{
|
|
1792
|
-
value: "signature",
|
|
1793
|
-
label: t("choice.preset.signature.label"),
|
|
1794
|
-
hint: t("choice.preset.signature.hint"),
|
|
1795
|
-
},
|
|
1796
1789
|
{
|
|
1797
1790
|
value: "sketch",
|
|
1798
1791
|
label: t("choice.preset.sketch.label"),
|
|
1799
1792
|
hint: t("choice.preset.sketch.hint"),
|
|
1800
1793
|
},
|
|
1794
|
+
{
|
|
1795
|
+
value: "screenMarkup",
|
|
1796
|
+
label: t("choice.preset.screenMarkup.label"),
|
|
1797
|
+
hint: t("choice.preset.screenMarkup.hint"),
|
|
1798
|
+
},
|
|
1801
1799
|
];
|
|
1802
1800
|
}
|
|
1803
1801
|
function packageManagerPromptChoices() {
|
|
@@ -1808,18 +1806,6 @@ function packageManagerPromptChoices() {
|
|
|
1808
1806
|
}
|
|
1809
1807
|
function presetWizardDetails() {
|
|
1810
1808
|
return {
|
|
1811
|
-
signature: {
|
|
1812
|
-
summary: t("choice.preset.signature.summary"),
|
|
1813
|
-
explanation: t("choice.preset.signature.explanation"),
|
|
1814
|
-
docsUrl: DOCS_PAYLOADS,
|
|
1815
|
-
docsLabel: t("choice.preset.signature.docs"),
|
|
1816
|
-
},
|
|
1817
|
-
initials: {
|
|
1818
|
-
summary: t("choice.preset.initials.summary"),
|
|
1819
|
-
explanation: t("choice.preset.initials.explanation"),
|
|
1820
|
-
docsUrl: DOCS_PAYLOADS,
|
|
1821
|
-
docsLabel: t("choice.preset.initials.docs"),
|
|
1822
|
-
},
|
|
1823
1809
|
approval: {
|
|
1824
1810
|
summary: t("choice.preset.approval.summary"),
|
|
1825
1811
|
explanation: t("choice.preset.approval.explanation"),
|
|
@@ -1989,7 +1975,7 @@ function agentOptionCatalog() {
|
|
|
1989
1975
|
`${target}:${sender.value}`,
|
|
1990
1976
|
defaultSdkForChoices(target, sender.value),
|
|
1991
1977
|
]))),
|
|
1992
|
-
preset: "
|
|
1978
|
+
preset: "sketch",
|
|
1993
1979
|
packageManager: "npm",
|
|
1994
1980
|
apiBaseUrl: DEFAULT_REMOTEDRAW_API_BASE_URL,
|
|
1995
1981
|
},
|
|
@@ -2008,7 +1994,7 @@ export function projectSetupDefinition() {
|
|
|
2008
1994
|
target: "web",
|
|
2009
1995
|
sender: "remotedraw-ios",
|
|
2010
1996
|
sdk: "react",
|
|
2011
|
-
preset: "
|
|
1997
|
+
preset: "sketch",
|
|
2012
1998
|
packageManager: "npm",
|
|
2013
1999
|
},
|
|
2014
2000
|
fields: projectSetupFields(),
|
|
@@ -2124,7 +2110,7 @@ function planFromArgs(parsed, options) {
|
|
|
2124
2110
|
const sdk = choice(readString(parsed, "sdk") ??
|
|
2125
2111
|
options.defaults?.sdk ??
|
|
2126
2112
|
defaultSdkForChoices(target, sender), sdkChoices, "sdk");
|
|
2127
|
-
const preset = choice(readString(parsed, "preset") ?? options.defaults?.preset ?? "
|
|
2113
|
+
const preset = choice(readString(parsed, "preset") ?? options.defaults?.preset ?? "sketch", presetChoices, "preset");
|
|
2128
2114
|
const packageManager = choice(readString(parsed, "package-manager") ??
|
|
2129
2115
|
options.defaults?.packageManager ??
|
|
2130
2116
|
"npm", packageManagerChoices, "package-manager");
|
|
@@ -3051,17 +3037,6 @@ export function createSessionPayload(options) {
|
|
|
3051
3037
|
target: {
|
|
3052
3038
|
kind: targetKindForPreset(options.preset),
|
|
3053
3039
|
label: options.label,
|
|
3054
|
-
...(options.preset === "signature"
|
|
3055
|
-
? {
|
|
3056
|
-
inputMapping: "surface",
|
|
3057
|
-
coordinateSpace: { width: 1600, height: 500 },
|
|
3058
|
-
}
|
|
3059
|
-
: options.preset === "initials"
|
|
3060
|
-
? {
|
|
3061
|
-
inputMapping: "surface",
|
|
3062
|
-
coordinateSpace: { width: 800, height: 500 },
|
|
3063
|
-
}
|
|
3064
|
-
: {}),
|
|
3065
3040
|
metadata: {
|
|
3066
3041
|
descriptor,
|
|
3067
3042
|
},
|
|
@@ -3072,31 +3047,6 @@ export function createSessionPayload(options) {
|
|
|
3072
3047
|
};
|
|
3073
3048
|
}
|
|
3074
3049
|
function descriptorForPreset(preset, label) {
|
|
3075
|
-
if (preset === "signature" || preset === "initials") {
|
|
3076
|
-
return {
|
|
3077
|
-
version: 1,
|
|
3078
|
-
privacy: "metadata-only",
|
|
3079
|
-
surfaceRole: "field",
|
|
3080
|
-
inputIntent: preset,
|
|
3081
|
-
label,
|
|
3082
|
-
components: [
|
|
3083
|
-
{
|
|
3084
|
-
id: preset,
|
|
3085
|
-
role: "field",
|
|
3086
|
-
inputIntent: preset,
|
|
3087
|
-
required: true,
|
|
3088
|
-
bounds: { minX: 0.1, minY: 0.68, maxX: 0.9, maxY: 0.86 },
|
|
3089
|
-
},
|
|
3090
|
-
],
|
|
3091
|
-
phoneHints: {
|
|
3092
|
-
preferredLayout: "signature-pad",
|
|
3093
|
-
preferredTool: "freehand",
|
|
3094
|
-
primaryActionLabel: "Submit",
|
|
3095
|
-
showUndo: true,
|
|
3096
|
-
showClear: true,
|
|
3097
|
-
},
|
|
3098
|
-
};
|
|
3099
|
-
}
|
|
3100
3050
|
if (preset === "approval") {
|
|
3101
3051
|
return {
|
|
3102
3052
|
version: 1,
|
|
@@ -3127,11 +3077,8 @@ function descriptorForPreset(preset, label) {
|
|
|
3127
3077
|
};
|
|
3128
3078
|
}
|
|
3129
3079
|
function targetKindForPreset(preset) {
|
|
3130
|
-
if (preset === "
|
|
3131
|
-
preset === "initials" ||
|
|
3132
|
-
preset === "approval") {
|
|
3080
|
+
if (preset === "approval")
|
|
3133
3081
|
return "field";
|
|
3134
|
-
}
|
|
3135
3082
|
if (preset === "photoMarkup" || preset === "designReview")
|
|
3136
3083
|
return "image";
|
|
3137
3084
|
if (preset === "pdfMarkup")
|
|
@@ -3155,8 +3102,6 @@ function surfaceRoleForPreset(preset) {
|
|
|
3155
3102
|
}
|
|
3156
3103
|
function labelForPreset(preset) {
|
|
3157
3104
|
const labels = {
|
|
3158
|
-
signature: "Customer signature",
|
|
3159
|
-
initials: "Customer initials",
|
|
3160
3105
|
approval: "Quick approval",
|
|
3161
3106
|
sketch: "Sketch input",
|
|
3162
3107
|
photoMarkup: "Photo annotation",
|
|
@@ -3313,7 +3258,7 @@ function planDefaultsForExample(example) {
|
|
|
3313
3258
|
target: "web",
|
|
3314
3259
|
sender: "remotedraw-ios",
|
|
3315
3260
|
sdk: "react",
|
|
3316
|
-
preset: "
|
|
3261
|
+
preset: "sketch",
|
|
3317
3262
|
};
|
|
3318
3263
|
}
|
|
3319
3264
|
function scaffoldSummary(verb, plan, outputDir, written, dryRun) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const AGENT_SKILL_MARKDOWN = "---\nname: remotedraw\ndescription: Add RemoteDraw phone input to customer apps with the RemoteDraw CLI, public API, React SDK, raw HTTP, or customer-owned iOS sender flow.\n---\n\n# RemoteDraw Agent Skill\n\nUse this skill when a user asks to create, initialize, debug, or review a RemoteDraw integration.\n\n## Decision Flow\n\n1. Identify the receiver surface: web app, desktop app, iOS app, or headless/backend workflow.\n2. Identify the sender surface: RemoteDraw iOS app, embedded web sender, customer-owned iOS sender, or raw/headless sender.\n3. Pick the SDK path:\n - React SDK: web receiver and optional embedded web sender.\n - Plain JavaScript/raw HTTP: non-React web, desktop, backend, or custom clients.\n - Swift: customer-owned iOS sender apps.\n4. Pick a supported starter: `
|
|
1
|
+
export declare const AGENT_SKILL_MARKDOWN = "---\nname: remotedraw\ndescription: Add RemoteDraw phone input to customer apps with the RemoteDraw CLI, public API, React SDK, raw HTTP, or customer-owned iOS sender flow.\n---\n\n# RemoteDraw Agent Skill\n\nUse this skill when a user asks to create, initialize, debug, or review a RemoteDraw integration.\n\n## Decision Flow\n\n1. Identify the receiver surface: web app, desktop app, iOS app, or headless/backend workflow.\n2. Identify the sender surface: RemoteDraw iOS app, embedded web sender, customer-owned iOS sender, or raw/headless sender.\n3. Pick the SDK path:\n - React SDK: web receiver and optional embedded web sender.\n - Plain JavaScript/raw HTTP: non-React web, desktop, backend, or custom clients.\n - Swift: customer-owned iOS sender apps.\n4. Pick a supported starter: `sketch` for a free-form receiver surface, or\n `screenMarkup` for annotations over a shared screen \u2014 both render through the\n `RemoteDrawReceiver` foundation, with the surrounding UI owned by the\n integrating app. Configure the target kind and descriptor directly for\n photos, PDFs, maps, bounded fields, and other custom surfaces. A bounded\n field is a target you describe yourself \u2014 `inputMapping: \"surface\"` plus a\n `coordinateSpace` \u2014 not a preset RemoteDraw ships.\n\n## Endpoint, Key, and Packages\n\nRemoteDraw is hosted. There is nothing for the customer to run or self-host.\n\n- API base URL: `https://api.remotedraw.com`\n- Public docs: `https://docs.remotedraw.com/docs`\n- API keys are created in the console at\n `https://dashboard.remotedraw.com/api/keys` and belong in `.env.local` as\n `REMOTEDRAW_API_KEY`, alongside\n `REMOTEDRAW_API_BASE_URL=https://api.remotedraw.com`.\n\nPublished npm packages \u2014 install only what the chosen path needs:\n\n| Package | Install | Use it for |\n| --- | --- | --- |\n| `@remotedraw/cli` | `npm install -g @remotedraw/cli` (or `npx @remotedraw/cli@latest`) | Scaffolding, doctor, and test sessions. |\n| `@remotedraw/react` | `npm install @remotedraw/react` | React receiver, pairing, and headless sender. Peers on `react`/`react-dom` >= 18. |\n| `@remotedraw/svelte` | `npm install @remotedraw/svelte` | Svelte receiver store over the framework-free client. |\n| `@remotedraw/client` | `npm install @remotedraw/client` | Framework-free receiver/sender/API clients for any JS runtime. |\n| `@remotedraw/protocol` | `npm install @remotedraw/protocol` | Shared schemas, types, and limits for raw-HTTP integrations. |\n| `@remotedraw/geometry` | `npm install @remotedraw/geometry` | Normalized stroke geometry, shape assist, hit testing, export. |\n\n`@remotedraw/react` already depends on `client`, `protocol`, and `geometry`, so\ndo not add those separately for a React app.\n\nFor customer-owned iOS senders, prefer the published SwiftPM package \u2014 it is the\nsame implementation the first-party RemoteDraw app runs:\n\n```swift\n.package(url: \"https://github.com/AxioSOzo/remotedraw-swift.git\", from: \"0.1.0\")\n.product(name: \"RemoteDrawSenderKit\", package: \"remotedraw-swift\")\n```\n\n`package:` is the repository basename, not the module name. `remotedraw init\n--sdk swift` remains available and writes one self-contained\n`RemoteDrawIntegration.swift` against the public HTTP routes; use it only when\nadding a SwiftPM dependency is not an option.\n\n## CLI First\n\nRead the machine-readable option catalog before choosing a plan:\n\n```sh\nremotedraw options --format json\n```\n\nInitialize a project with the closest supported path:\n\n```sh\nremotedraw init --target web --sender remotedraw-ios --sdk react --preset sketch\nremotedraw init --target web --sender embedded-web --sdk react --preset sketch\nremotedraw init --target desktop --sender remotedraw-ios --sdk js --preset sketch\nremotedraw init --target ios --sender own-ios --sdk swift --preset sketch\n```\n\nBy default, `new` and `init` create the dashboard project and a project-scoped\ndevelopment API key, then write `REMOTEDRAW_API_BASE_URL`,\n`REMOTEDRAW_PROJECT_ID`, and `REMOTEDRAW_API_KEY` to a gitignored `.env.local`.\nUse `--offline` only when cloud setup is intentionally out of scope.\n\n`--sender own-ios` requires `--sdk swift`; every other combination of\n`--target`, `--sender`, and `--sdk` is accepted. Invalid combinations fail with\n`INVALID_COMBINATION` rather than guessing.\n\nAgents must use explicit non-interactive dry runs before changing a project:\n\n```sh\nremotedraw init --non-interactive --offline --dry-run --format json --target web --sender remotedraw-ios --sdk react --preset sketch --package-manager npm\n# Inspect plan, files, defaultsApplied, and warnings before applying.\nremotedraw init --non-interactive --offline --format json --target web --sender remotedraw-ios --sdk react --preset sketch --package-manager npm\nremotedraw doctor --format json\nremotedraw create-input --preset sketch --json\n```\n\nDo not use the interactive wizard, synthesize arrow-key input, or scrape\nhuman-formatted output. If receiver, sender, or preset intent is ambiguous, ask\nthe user instead of guessing. Never pass `--force` unless overwrite scope was\nexplicitly approved.\n\n## Security Rules\n\n- Keep `rd_sk_...` API keys in trusted backend secrets only.\n- Keep the account-level `rd_cli_...` credential in the user config directory; never copy it into a project. Use `REMOTEDRAW_CLI_TOKEN` only as an explicitly managed CI secret.\n- Never place API keys in browser bundles, mobile clients, screenshots, logs, or generated examples.\n- Public clients should receive only `joinUrl`, `joinToken`, `receiverToken`, or `senderToken` values scoped to the session.\n- Production QR codes should use HTTPS `joinUrl` values. Do not make the custom scheme the primary QR target.\n\n## API Contract\n\n- Backend creates sessions with `POST /v1/sessions`.\n- Receiver clients read `POST /v1/receiver/session`, `/drawings`, `/drafts`, and `/senders` with a receiver token.\n- Sender clients join with `POST /v1/join`, stream mutable drafts to `/v1/sender/draft`, commit durable strokes to `/v1/sender/commit`, and finish with `/v1/sender/submit`.\n- Custom senders should throttle draft updates, coalesce to the latest pending preview, and commit one durable stroke on pointer-up with a stable `clientStrokeId`.\n\n## AI Actions\n\nReach for AI when the product needs something _from_ the finished drawing:\na generated image, a description, or structured data to branch on. Backend only\n(`aiActions:*` scopes on an `rd_sk_...` key). Never wire it to a commit,\nsubmit, or presence event \u2014 AI runs only on an explicit `POST /v1/ai-actions`\ncall the user asked for. Run it after the user is done; the route accepts\n`active` and `ended` sessions.\n\nMinimal request per outcome (`POST /v1/ai-actions`, plus optional\n`quality: \"fast\" | \"balanced\" | \"max\"`, default `balanced`):\n\n```jsonc\n{ \"sessionId\": \"...\", \"request\": \"image\", \"prompt\": \"...\" } // image back in the response\n{ \"sessionId\": \"...\", \"request\": \"image\", \"prompt\": \"...\", \"deliver\": [\"result\", \"board\"] } // and onto the board\n{ \"sessionId\": \"...\", \"request\": \"text\", \"prompt\": \"Describe this drawing.\" } // text back\n{ \"sessionId\": \"...\", \"request\": \"text\", \"prompt\": \"...\", \"text\": { \"schema\": { /* JSON Schema */ } } } // typed JSON\n```\n\nThe response is asynchronous: `create` returns `status: \"queued\"`. Poll\n`POST /v1/ai-actions/get` until `status` is `succeeded`, `failed`, or\n`canceled`, or use the helper on the API client\n(`createHttpRemoteDrawApiClient` from `@remotedraw/client`, re-exported by\n`@remotedraw/react`). This client holds the `rd_sk_` key, so it only ever runs\non the backend:\n\n```ts\nconst action = await client.createAiAction({\n sessionId,\n request: \"image\",\n prompt,\n});\nconst finished = await client.waitForAiAction({ aiActionId: action.id });\n// finished.result: generatedImageUrl | generatedText | generatedData | boardDrawingIds\n```\n\nThere is no completion webhook. Results are RemoteDraw-hosted asset URLs, not\nprovider URLs. See https://docs.remotedraw.com/docs/api#ai for the full\nrequest, credit, and legacy-mapping tables.\n\n## Verification\n\nAfter changes, verify against the customer's project \u2014 never assume RemoteDraw's\nown repo scripts exist here.\n\n```sh\nremotedraw doctor # config, SDK deps, REMOTEDRAW_* env\nremotedraw create-input --execute # open a real session, print the join URL\n```\n\nThen run whatever type check and test command the project already defines (for\nexample `npm run typecheck` and `npm test`). Do not invent script names, and do\nnot run `bun run test:api`, `bun run typecheck`, or `bun run ios:kit:test` \u2014\nthose are RemoteDraw's internal monorepo scripts and will not exist in a\ncustomer project.";
|
|
2
2
|
//# sourceMappingURL=agent-skill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-skill.d.ts","sourceRoot":"","sources":["../../src/generated/agent-skill.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"agent-skill.d.ts","sourceRoot":"","sources":["../../src/generated/agent-skill.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,ysRAAiqR,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// GENERATED FILE — do not edit.
|
|
2
2
|
// Source: docs/agents/remotedraw/SKILL.md
|
|
3
3
|
// Regenerate: bun run --cwd packages/cli generate:skill
|
|
4
|
-
export const AGENT_SKILL_MARKDOWN = "---\nname: remotedraw\ndescription: Add RemoteDraw phone input to customer apps with the RemoteDraw CLI, public API, React SDK, raw HTTP, or customer-owned iOS sender flow.\n---\n\n# RemoteDraw Agent Skill\n\nUse this skill when a user asks to create, initialize, debug, or review a RemoteDraw integration.\n\n## Decision Flow\n\n1. Identify the receiver surface: web app, desktop app, iOS app, or headless/backend workflow.\n2. Identify the sender surface: RemoteDraw iOS app, embedded web sender, customer-owned iOS sender, or raw/headless sender.\n3. Pick the SDK path:\n - React SDK: web receiver and optional embedded web sender.\n - Plain JavaScript/raw HTTP: non-React web, desktop, backend, or custom clients.\n - Swift: customer-owned iOS sender apps.\n4. Pick a supported starter: `
|
|
4
|
+
export const AGENT_SKILL_MARKDOWN = "---\nname: remotedraw\ndescription: Add RemoteDraw phone input to customer apps with the RemoteDraw CLI, public API, React SDK, raw HTTP, or customer-owned iOS sender flow.\n---\n\n# RemoteDraw Agent Skill\n\nUse this skill when a user asks to create, initialize, debug, or review a RemoteDraw integration.\n\n## Decision Flow\n\n1. Identify the receiver surface: web app, desktop app, iOS app, or headless/backend workflow.\n2. Identify the sender surface: RemoteDraw iOS app, embedded web sender, customer-owned iOS sender, or raw/headless sender.\n3. Pick the SDK path:\n - React SDK: web receiver and optional embedded web sender.\n - Plain JavaScript/raw HTTP: non-React web, desktop, backend, or custom clients.\n - Swift: customer-owned iOS sender apps.\n4. Pick a supported starter: `sketch` for a free-form receiver surface, or\n `screenMarkup` for annotations over a shared screen — both render through the\n `RemoteDrawReceiver` foundation, with the surrounding UI owned by the\n integrating app. Configure the target kind and descriptor directly for\n photos, PDFs, maps, bounded fields, and other custom surfaces. A bounded\n field is a target you describe yourself — `inputMapping: \"surface\"` plus a\n `coordinateSpace` — not a preset RemoteDraw ships.\n\n## Endpoint, Key, and Packages\n\nRemoteDraw is hosted. There is nothing for the customer to run or self-host.\n\n- API base URL: `https://api.remotedraw.com`\n- Public docs: `https://docs.remotedraw.com/docs`\n- API keys are created in the console at\n `https://dashboard.remotedraw.com/api/keys` and belong in `.env.local` as\n `REMOTEDRAW_API_KEY`, alongside\n `REMOTEDRAW_API_BASE_URL=https://api.remotedraw.com`.\n\nPublished npm packages — install only what the chosen path needs:\n\n| Package | Install | Use it for |\n| --- | --- | --- |\n| `@remotedraw/cli` | `npm install -g @remotedraw/cli` (or `npx @remotedraw/cli@latest`) | Scaffolding, doctor, and test sessions. |\n| `@remotedraw/react` | `npm install @remotedraw/react` | React receiver, pairing, and headless sender. Peers on `react`/`react-dom` >= 18. |\n| `@remotedraw/svelte` | `npm install @remotedraw/svelte` | Svelte receiver store over the framework-free client. |\n| `@remotedraw/client` | `npm install @remotedraw/client` | Framework-free receiver/sender/API clients for any JS runtime. |\n| `@remotedraw/protocol` | `npm install @remotedraw/protocol` | Shared schemas, types, and limits for raw-HTTP integrations. |\n| `@remotedraw/geometry` | `npm install @remotedraw/geometry` | Normalized stroke geometry, shape assist, hit testing, export. |\n\n`@remotedraw/react` already depends on `client`, `protocol`, and `geometry`, so\ndo not add those separately for a React app.\n\nFor customer-owned iOS senders, prefer the published SwiftPM package — it is the\nsame implementation the first-party RemoteDraw app runs:\n\n```swift\n.package(url: \"https://github.com/AxioSOzo/remotedraw-swift.git\", from: \"0.1.0\")\n.product(name: \"RemoteDrawSenderKit\", package: \"remotedraw-swift\")\n```\n\n`package:` is the repository basename, not the module name. `remotedraw init\n--sdk swift` remains available and writes one self-contained\n`RemoteDrawIntegration.swift` against the public HTTP routes; use it only when\nadding a SwiftPM dependency is not an option.\n\n## CLI First\n\nRead the machine-readable option catalog before choosing a plan:\n\n```sh\nremotedraw options --format json\n```\n\nInitialize a project with the closest supported path:\n\n```sh\nremotedraw init --target web --sender remotedraw-ios --sdk react --preset sketch\nremotedraw init --target web --sender embedded-web --sdk react --preset sketch\nremotedraw init --target desktop --sender remotedraw-ios --sdk js --preset sketch\nremotedraw init --target ios --sender own-ios --sdk swift --preset sketch\n```\n\nBy default, `new` and `init` create the dashboard project and a project-scoped\ndevelopment API key, then write `REMOTEDRAW_API_BASE_URL`,\n`REMOTEDRAW_PROJECT_ID`, and `REMOTEDRAW_API_KEY` to a gitignored `.env.local`.\nUse `--offline` only when cloud setup is intentionally out of scope.\n\n`--sender own-ios` requires `--sdk swift`; every other combination of\n`--target`, `--sender`, and `--sdk` is accepted. Invalid combinations fail with\n`INVALID_COMBINATION` rather than guessing.\n\nAgents must use explicit non-interactive dry runs before changing a project:\n\n```sh\nremotedraw init --non-interactive --offline --dry-run --format json --target web --sender remotedraw-ios --sdk react --preset sketch --package-manager npm\n# Inspect plan, files, defaultsApplied, and warnings before applying.\nremotedraw init --non-interactive --offline --format json --target web --sender remotedraw-ios --sdk react --preset sketch --package-manager npm\nremotedraw doctor --format json\nremotedraw create-input --preset sketch --json\n```\n\nDo not use the interactive wizard, synthesize arrow-key input, or scrape\nhuman-formatted output. If receiver, sender, or preset intent is ambiguous, ask\nthe user instead of guessing. Never pass `--force` unless overwrite scope was\nexplicitly approved.\n\n## Security Rules\n\n- Keep `rd_sk_...` API keys in trusted backend secrets only.\n- Keep the account-level `rd_cli_...` credential in the user config directory; never copy it into a project. Use `REMOTEDRAW_CLI_TOKEN` only as an explicitly managed CI secret.\n- Never place API keys in browser bundles, mobile clients, screenshots, logs, or generated examples.\n- Public clients should receive only `joinUrl`, `joinToken`, `receiverToken`, or `senderToken` values scoped to the session.\n- Production QR codes should use HTTPS `joinUrl` values. Do not make the custom scheme the primary QR target.\n\n## API Contract\n\n- Backend creates sessions with `POST /v1/sessions`.\n- Receiver clients read `POST /v1/receiver/session`, `/drawings`, `/drafts`, and `/senders` with a receiver token.\n- Sender clients join with `POST /v1/join`, stream mutable drafts to `/v1/sender/draft`, commit durable strokes to `/v1/sender/commit`, and finish with `/v1/sender/submit`.\n- Custom senders should throttle draft updates, coalesce to the latest pending preview, and commit one durable stroke on pointer-up with a stable `clientStrokeId`.\n\n## AI Actions\n\nReach for AI when the product needs something _from_ the finished drawing:\na generated image, a description, or structured data to branch on. Backend only\n(`aiActions:*` scopes on an `rd_sk_...` key). Never wire it to a commit,\nsubmit, or presence event — AI runs only on an explicit `POST /v1/ai-actions`\ncall the user asked for. Run it after the user is done; the route accepts\n`active` and `ended` sessions.\n\nMinimal request per outcome (`POST /v1/ai-actions`, plus optional\n`quality: \"fast\" | \"balanced\" | \"max\"`, default `balanced`):\n\n```jsonc\n{ \"sessionId\": \"...\", \"request\": \"image\", \"prompt\": \"...\" } // image back in the response\n{ \"sessionId\": \"...\", \"request\": \"image\", \"prompt\": \"...\", \"deliver\": [\"result\", \"board\"] } // and onto the board\n{ \"sessionId\": \"...\", \"request\": \"text\", \"prompt\": \"Describe this drawing.\" } // text back\n{ \"sessionId\": \"...\", \"request\": \"text\", \"prompt\": \"...\", \"text\": { \"schema\": { /* JSON Schema */ } } } // typed JSON\n```\n\nThe response is asynchronous: `create` returns `status: \"queued\"`. Poll\n`POST /v1/ai-actions/get` until `status` is `succeeded`, `failed`, or\n`canceled`, or use the helper on the API client\n(`createHttpRemoteDrawApiClient` from `@remotedraw/client`, re-exported by\n`@remotedraw/react`). This client holds the `rd_sk_` key, so it only ever runs\non the backend:\n\n```ts\nconst action = await client.createAiAction({\n sessionId,\n request: \"image\",\n prompt,\n});\nconst finished = await client.waitForAiAction({ aiActionId: action.id });\n// finished.result: generatedImageUrl | generatedText | generatedData | boardDrawingIds\n```\n\nThere is no completion webhook. Results are RemoteDraw-hosted asset URLs, not\nprovider URLs. See https://docs.remotedraw.com/docs/api#ai for the full\nrequest, credit, and legacy-mapping tables.\n\n## Verification\n\nAfter changes, verify against the customer's project — never assume RemoteDraw's\nown repo scripts exist here.\n\n```sh\nremotedraw doctor # config, SDK deps, REMOTEDRAW_* env\nremotedraw create-input --execute # open a real session, print the join URL\n```\n\nThen run whatever type check and test command the project already defines (for\nexample `npm run typecheck` and `npm test`). Do not invent script names, and do\nnot run `bun run test:api`, `bun run typecheck`, or `bun run ios:kit:test` —\nthose are RemoteDraw's internal monorepo scripts and will not exist in a\ncustomer project.";
|
package/dist/locales/en.d.ts
CHANGED
|
@@ -141,14 +141,6 @@ export declare const en: {
|
|
|
141
141
|
readonly "choice.sdk.headless.summary": "Config only, without a UI package.";
|
|
142
142
|
readonly "choice.sdk.headless.explanation": "Choose this when another language or a custom client calls the HTTP API. The wizard adds no framework dependency.";
|
|
143
143
|
readonly "choice.sdk.headless.docs": "Open HTTP API docs";
|
|
144
|
-
readonly "choice.preset.signature.label": "Signature strip";
|
|
145
|
-
readonly "choice.preset.signature.hint": "Product-ready branded field with exact surface mapping.";
|
|
146
|
-
readonly "choice.preset.signature.summary": "A bounded signature field with an exactly matching phone surface.";
|
|
147
|
-
readonly "choice.preset.signature.explanation": "Choose this for a signature field you style yourself around RemoteDrawReceiver, with an exactly matching phone surface. You can adapt logo, text, color, and the surrounding form UI.";
|
|
148
|
-
readonly "choice.preset.signature.docs": "Open signature docs";
|
|
149
|
-
readonly "choice.preset.initials.summary": "A small drawing field for initials.";
|
|
150
|
-
readonly "choice.preset.initials.explanation": "Use this when someone has to place short initials in one or more places, for example during document review.";
|
|
151
|
-
readonly "choice.preset.initials.docs": "Open initials docs";
|
|
152
144
|
readonly "choice.preset.approval.summary": "Free drawing input for a visual sign-off.";
|
|
153
145
|
readonly "choice.preset.approval.explanation": "Use this for approvals where a check, initial, or short mark is enough and your workflow owns the status.";
|
|
154
146
|
readonly "choice.preset.approval.docs": "Open approval docs";
|
|
@@ -166,6 +158,8 @@ export declare const en: {
|
|
|
166
158
|
readonly "choice.preset.mapMarkup.summary": "Drawings and directions on a map.";
|
|
167
159
|
readonly "choice.preset.mapMarkup.explanation": "Use this for routes, locations, or spatial feedback. Your app owns the map and viewport; RemoteDraw syncs the input.";
|
|
168
160
|
readonly "choice.preset.mapMarkup.docs": "Open map markup docs";
|
|
161
|
+
readonly "choice.preset.screenMarkup.label": "Screen annotation";
|
|
162
|
+
readonly "choice.preset.screenMarkup.hint": "Mark up a screen or window your receiver shares.";
|
|
169
163
|
readonly "choice.preset.screenMarkup.summary": "Annotations on a screen or application view.";
|
|
170
164
|
readonly "choice.preset.screenMarkup.explanation": "Use this for support, demos, and UI feedback. Your receiver supplies the screen image the phone marks are projected onto.";
|
|
171
165
|
readonly "choice.preset.screenMarkup.docs": "Open screen markup docs";
|
|
@@ -229,7 +223,7 @@ export declare const en: {
|
|
|
229
223
|
readonly "new.help.option.target": "web, desktop, ios, or headless.";
|
|
230
224
|
readonly "new.help.option.sender": "remotedraw-ios, embedded-web, own-ios, or headless.";
|
|
231
225
|
readonly "new.help.option.sdk": "react, svelte, js, swift, or headless.";
|
|
232
|
-
readonly "new.help.option.preset": "
|
|
226
|
+
readonly "new.help.option.preset": "sketch or screenMarkup. The other API presets remain accepted for existing integrations.";
|
|
233
227
|
readonly "new.help.option.packageManager": "npm, pnpm, yarn, or bun.";
|
|
234
228
|
readonly "new.help.option.apiBaseUrl": "Default API origin for generated config.";
|
|
235
229
|
readonly "new.help.option.force": "Overwrite generated files and existing RemoteDraw .env.local values.";
|
|
@@ -352,7 +346,7 @@ export declare const en: {
|
|
|
352
346
|
readonly "createInput.error.noFetch": "This runtime cannot execute HTTP requests.";
|
|
353
347
|
readonly "createInput.error.noKey": "create-input --execute requires --api-key or REMOTEDRAW_API_KEY with an rd_sk_... server key.";
|
|
354
348
|
readonly "createInput.error.apiStatus": "RemoteDraw API returned {status}.";
|
|
355
|
-
readonly "createInput.help.usage": " remotedraw create-input [--preset
|
|
349
|
+
readonly "createInput.help.usage": " remotedraw create-input [--preset sketch] [--json|--curl|--execute]";
|
|
356
350
|
readonly "createInput.help.option.preset": "Session/input preset.";
|
|
357
351
|
readonly "createInput.help.option.label": "Receiver target label.";
|
|
358
352
|
readonly "createInput.help.option.externalId": "App-owned correlation id.";
|
package/dist/locales/en.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2kBL,CAAC"}
|
package/dist/locales/en.js
CHANGED
|
@@ -154,14 +154,6 @@ export const en = {
|
|
|
154
154
|
"choice.sdk.headless.explanation": "Choose this when another language or a custom client calls the HTTP API. The wizard adds no framework dependency.",
|
|
155
155
|
"choice.sdk.headless.docs": "Open HTTP API docs",
|
|
156
156
|
// ── Preset choices ────────────────────────────────────────────────────
|
|
157
|
-
"choice.preset.signature.label": "Signature strip",
|
|
158
|
-
"choice.preset.signature.hint": "Product-ready branded field with exact surface mapping.",
|
|
159
|
-
"choice.preset.signature.summary": "A bounded signature field with an exactly matching phone surface.",
|
|
160
|
-
"choice.preset.signature.explanation": "Choose this for a signature field you style yourself around RemoteDrawReceiver, with an exactly matching phone surface. You can adapt logo, text, color, and the surrounding form UI.",
|
|
161
|
-
"choice.preset.signature.docs": "Open signature docs",
|
|
162
|
-
"choice.preset.initials.summary": "A small drawing field for initials.",
|
|
163
|
-
"choice.preset.initials.explanation": "Use this when someone has to place short initials in one or more places, for example during document review.",
|
|
164
|
-
"choice.preset.initials.docs": "Open initials docs",
|
|
165
157
|
"choice.preset.approval.summary": "Free drawing input for a visual sign-off.",
|
|
166
158
|
"choice.preset.approval.explanation": "Use this for approvals where a check, initial, or short mark is enough and your workflow owns the status.",
|
|
167
159
|
"choice.preset.approval.docs": "Open approval docs",
|
|
@@ -179,6 +171,8 @@ export const en = {
|
|
|
179
171
|
"choice.preset.mapMarkup.summary": "Drawings and directions on a map.",
|
|
180
172
|
"choice.preset.mapMarkup.explanation": "Use this for routes, locations, or spatial feedback. Your app owns the map and viewport; RemoteDraw syncs the input.",
|
|
181
173
|
"choice.preset.mapMarkup.docs": "Open map markup docs",
|
|
174
|
+
"choice.preset.screenMarkup.label": "Screen annotation",
|
|
175
|
+
"choice.preset.screenMarkup.hint": "Mark up a screen or window your receiver shares.",
|
|
182
176
|
"choice.preset.screenMarkup.summary": "Annotations on a screen or application view.",
|
|
183
177
|
"choice.preset.screenMarkup.explanation": "Use this for support, demos, and UI feedback. Your receiver supplies the screen image the phone marks are projected onto.",
|
|
184
178
|
"choice.preset.screenMarkup.docs": "Open screen markup docs",
|
|
@@ -245,7 +239,7 @@ export const en = {
|
|
|
245
239
|
"new.help.option.target": "web, desktop, ios, or headless.",
|
|
246
240
|
"new.help.option.sender": "remotedraw-ios, embedded-web, own-ios, or headless.",
|
|
247
241
|
"new.help.option.sdk": "react, svelte, js, swift, or headless.",
|
|
248
|
-
"new.help.option.preset": "
|
|
242
|
+
"new.help.option.preset": "sketch or screenMarkup. The other API presets remain accepted for existing integrations.",
|
|
249
243
|
"new.help.option.packageManager": "npm, pnpm, yarn, or bun.",
|
|
250
244
|
"new.help.option.apiBaseUrl": "Default API origin for generated config.",
|
|
251
245
|
"new.help.option.force": "Overwrite generated files and existing RemoteDraw .env.local values.",
|
|
@@ -374,7 +368,7 @@ export const en = {
|
|
|
374
368
|
"createInput.error.noFetch": "This runtime cannot execute HTTP requests.",
|
|
375
369
|
"createInput.error.noKey": "create-input --execute requires --api-key or REMOTEDRAW_API_KEY with an rd_sk_... server key.",
|
|
376
370
|
"createInput.error.apiStatus": "RemoteDraw API returned {status}.",
|
|
377
|
-
"createInput.help.usage": " remotedraw create-input [--preset
|
|
371
|
+
"createInput.help.usage": " remotedraw create-input [--preset sketch] [--json|--curl|--execute]",
|
|
378
372
|
"createInput.help.option.preset": "Session/input preset.",
|
|
379
373
|
"createInput.help.option.label": "Receiver target label.",
|
|
380
374
|
"createInput.help.option.externalId": "App-owned correlation id.",
|
package/dist/locales/index.d.ts
CHANGED
|
@@ -144,14 +144,6 @@ export declare const LOCALES: {
|
|
|
144
144
|
readonly "choice.sdk.headless.summary": "Config only, without a UI package.";
|
|
145
145
|
readonly "choice.sdk.headless.explanation": "Choose this when another language or a custom client calls the HTTP API. The wizard adds no framework dependency.";
|
|
146
146
|
readonly "choice.sdk.headless.docs": "Open HTTP API docs";
|
|
147
|
-
readonly "choice.preset.signature.label": "Signature strip";
|
|
148
|
-
readonly "choice.preset.signature.hint": "Product-ready branded field with exact surface mapping.";
|
|
149
|
-
readonly "choice.preset.signature.summary": "A bounded signature field with an exactly matching phone surface.";
|
|
150
|
-
readonly "choice.preset.signature.explanation": "Choose this for a signature field you style yourself around RemoteDrawReceiver, with an exactly matching phone surface. You can adapt logo, text, color, and the surrounding form UI.";
|
|
151
|
-
readonly "choice.preset.signature.docs": "Open signature docs";
|
|
152
|
-
readonly "choice.preset.initials.summary": "A small drawing field for initials.";
|
|
153
|
-
readonly "choice.preset.initials.explanation": "Use this when someone has to place short initials in one or more places, for example during document review.";
|
|
154
|
-
readonly "choice.preset.initials.docs": "Open initials docs";
|
|
155
147
|
readonly "choice.preset.approval.summary": "Free drawing input for a visual sign-off.";
|
|
156
148
|
readonly "choice.preset.approval.explanation": "Use this for approvals where a check, initial, or short mark is enough and your workflow owns the status.";
|
|
157
149
|
readonly "choice.preset.approval.docs": "Open approval docs";
|
|
@@ -169,6 +161,8 @@ export declare const LOCALES: {
|
|
|
169
161
|
readonly "choice.preset.mapMarkup.summary": "Drawings and directions on a map.";
|
|
170
162
|
readonly "choice.preset.mapMarkup.explanation": "Use this for routes, locations, or spatial feedback. Your app owns the map and viewport; RemoteDraw syncs the input.";
|
|
171
163
|
readonly "choice.preset.mapMarkup.docs": "Open map markup docs";
|
|
164
|
+
readonly "choice.preset.screenMarkup.label": "Screen annotation";
|
|
165
|
+
readonly "choice.preset.screenMarkup.hint": "Mark up a screen or window your receiver shares.";
|
|
172
166
|
readonly "choice.preset.screenMarkup.summary": "Annotations on a screen or application view.";
|
|
173
167
|
readonly "choice.preset.screenMarkup.explanation": "Use this for support, demos, and UI feedback. Your receiver supplies the screen image the phone marks are projected onto.";
|
|
174
168
|
readonly "choice.preset.screenMarkup.docs": "Open screen markup docs";
|
|
@@ -232,7 +226,7 @@ export declare const LOCALES: {
|
|
|
232
226
|
readonly "new.help.option.target": "web, desktop, ios, or headless.";
|
|
233
227
|
readonly "new.help.option.sender": "remotedraw-ios, embedded-web, own-ios, or headless.";
|
|
234
228
|
readonly "new.help.option.sdk": "react, svelte, js, swift, or headless.";
|
|
235
|
-
readonly "new.help.option.preset": "
|
|
229
|
+
readonly "new.help.option.preset": "sketch or screenMarkup. The other API presets remain accepted for existing integrations.";
|
|
236
230
|
readonly "new.help.option.packageManager": "npm, pnpm, yarn, or bun.";
|
|
237
231
|
readonly "new.help.option.apiBaseUrl": "Default API origin for generated config.";
|
|
238
232
|
readonly "new.help.option.force": "Overwrite generated files and existing RemoteDraw .env.local values.";
|
|
@@ -355,7 +349,7 @@ export declare const LOCALES: {
|
|
|
355
349
|
readonly "createInput.error.noFetch": "This runtime cannot execute HTTP requests.";
|
|
356
350
|
readonly "createInput.error.noKey": "create-input --execute requires --api-key or REMOTEDRAW_API_KEY with an rd_sk_... server key.";
|
|
357
351
|
readonly "createInput.error.apiStatus": "RemoteDraw API returned {status}.";
|
|
358
|
-
readonly "createInput.help.usage": " remotedraw create-input [--preset
|
|
352
|
+
readonly "createInput.help.usage": " remotedraw create-input [--preset sketch] [--json|--curl|--execute]";
|
|
359
353
|
readonly "createInput.help.option.preset": "Session/input preset.";
|
|
360
354
|
readonly "createInput.help.option.label": "Receiver target label.";
|
|
361
355
|
readonly "createInput.help.option.externalId": "App-owned correlation id.";
|
|
@@ -425,7 +419,7 @@ export declare const LOCALES: {
|
|
|
425
419
|
endonym: string;
|
|
426
420
|
tags: string[];
|
|
427
421
|
aliases: string[];
|
|
428
|
-
catalog: Partial<Record<"language.word" | "language.prompt.helper" | "language.saved" | "language.current" | "language.source.flag" | "language.source.env" | "language.source.config" | "language.source.default" | "language.available" | "language.unknown" | "language.saveFailed" | "language.help.title" | "language.help.usage.list" | "language.help.usage.set" | "language.help.body" | "language.help.override" | "word.usage" | "word.options" | "word.commands" | "word.next" | "word.examples" | "help.title" | "help.usage.main" | "help.command.guide" | "help.command.options" | "help.command.language" | "help.command.login" | "help.command.logout" | "help.command.whoami" | "help.command.new" | "help.command.init" | "help.command.dev" | "help.command.doctor" | "help.command.update" | "help.command.createInput" | "help.command.examples" | "help.command.agent" | "help.startHere" | "guide.title" | "guide.intro" | "guide.path.webIos" | "guide.path.webOwned" | "guide.path.svelteIos" | "guide.path.desktop" | "guide.path.ownIos" | "guide.note.keys" | "guide.note.provisioning" | "guide.note.offline" | "options.title" | "options.machineReadable" | "options.help.body" | "field.appName" | "field.target" | "field.sender" | "field.sdk" | "field.preset" | "field.packageManager" | "field.apiBaseUrl" | "field.project" | "field.folder" | "field.sdkShort" | "field.sender.helper" | "field.sdk.helper" | "field.appName.error" | "field.appName.preview" | "choice.target.web.label" | "choice.target.web.summary" | "choice.target.web.explanation" | "choice.target.web.docs" | "choice.target.desktop.label" | "choice.target.desktop.summary" | "choice.target.desktop.explanation" | "choice.target.desktop.docs" | "choice.target.ios.label" | "choice.target.ios.summary" | "choice.target.ios.explanation" | "choice.target.ios.docs" | "choice.target.headless.label" | "choice.target.headless.summary" | "choice.target.headless.explanation" | "choice.target.headless.docs" | "choice.sender.remotedrawIos.label" | "choice.sender.remotedrawIos.hint.scan" | "choice.sender.remotedrawIos.hint.joinUrl" | "choice.sender.remotedrawIos.summary" | "choice.sender.remotedrawIos.explanation" | "choice.sender.remotedrawIos.docs" | "choice.sender.embeddedWeb.label" | "choice.sender.embeddedWeb.hint" | "choice.sender.embeddedWeb.summary" | "choice.sender.embeddedWeb.explanation" | "choice.sender.embeddedWeb.docs" | "choice.sender.ownIos.label" | "choice.sender.ownIos.hint" | "choice.sender.ownIos.summary" | "choice.sender.ownIos.explanation" | "choice.sender.ownIos.docs" | "choice.sender.headless.label" | "choice.sender.headless.hint.noUi" | "choice.sender.headless.hint.httpRoutes" | "choice.sender.headless.summary" | "choice.sender.headless.explanation" | "choice.sender.headless.docs" | "choice.sdk.react.label" | "choice.sdk.react.hint" | "choice.sdk.react.summary" | "choice.sdk.react.explanation" | "choice.sdk.react.docs" | "choice.sdk.svelte.label" | "choice.sdk.svelte.hint" | "choice.sdk.svelte.summary" | "choice.sdk.svelte.explanation" | "choice.sdk.svelte.docs" | "choice.sdk.js.label.client" | "choice.sdk.js.label.noFramework" | "choice.sdk.js.hint.client" | "choice.sdk.js.hint.noFramework" | "choice.sdk.js.summary" | "choice.sdk.js.explanation" | "choice.sdk.js.docs" | "choice.sdk.swift.label" | "choice.sdk.swift.hint" | "choice.sdk.swift.summary" | "choice.sdk.swift.explanation" | "choice.sdk.swift.docs" | "choice.sdk.headless.label" | "choice.sdk.headless.hint" | "choice.sdk.headless.summary" | "choice.sdk.headless.explanation" | "choice.sdk.headless.docs" | "choice.preset.signature.label" | "choice.preset.signature.hint" | "choice.preset.signature.summary" | "choice.preset.signature.explanation" | "choice.preset.signature.docs" | "choice.preset.initials.summary" | "choice.preset.initials.explanation" | "choice.preset.initials.docs" | "choice.preset.approval.summary" | "choice.preset.approval.explanation" | "choice.preset.approval.docs" | "choice.preset.sketch.label" | "choice.preset.sketch.hint" | "choice.preset.sketch.summary" | "choice.preset.sketch.explanation" | "choice.preset.sketch.docs" | "choice.preset.photoMarkup.summary" | "choice.preset.photoMarkup.explanation" | "choice.preset.photoMarkup.docs" | "choice.preset.pdfMarkup.summary" | "choice.preset.pdfMarkup.explanation" | "choice.preset.pdfMarkup.docs" | "choice.preset.mapMarkup.summary" | "choice.preset.mapMarkup.explanation" | "choice.preset.mapMarkup.docs" | "choice.preset.screenMarkup.summary" | "choice.preset.screenMarkup.explanation" | "choice.preset.screenMarkup.docs" | "choice.preset.designReview.summary" | "choice.preset.designReview.explanation" | "choice.preset.designReview.docs" | "choice.preset.pointer.summary" | "choice.preset.pointer.explanation" | "choice.preset.pointer.docs" | "choice.packageManager.npm.summary" | "choice.packageManager.npm.explanation" | "choice.packageManager.npm.docs" | "choice.packageManager.pnpm.summary" | "choice.packageManager.pnpm.explanation" | "choice.packageManager.pnpm.docs" | "choice.packageManager.yarn.summary" | "choice.packageManager.yarn.explanation" | "choice.packageManager.yarn.docs" | "choice.packageManager.bun.summary" | "choice.packageManager.bun.explanation" | "choice.packageManager.bun.docs" | "wizard.title.setup" | "wizard.title.review" | "wizard.title.confirm" | "wizard.title.executing" | "wizard.title.success" | "wizard.title.error" | "wizard.title.interrupted" | "wizard.title.cancelled" | "wizard.confirm.no" | "wizard.confirm.yes" | "wizard.hint.replaceDefault" | "wizard.hint.edit" | "wizard.control.next" | "wizard.control.back" | "wizard.control.quitCtrlC" | "wizard.control.quitQ" | "wizard.control.move" | "wizard.control.steps" | "wizard.control.choose" | "wizard.control.docs" | "wizard.control.forward" | "wizard.control.backArrow" | "wizard.control.confirm" | "wizard.progress.step" | "wizard.card.help" | "wizard.card.summary" | "wizard.value.default" | "wizard.executing.detail" | "wizard.created.at" | "wizard.next.command" | "wizard.docs.line" | "wizard.tagline.setup" | "wizard.tagline" | "wizard.docs.openFailed" | "wizard.docs.button" | "new.help.usage.bare" | "new.help.usage.named" | "new.help.interactive" | "new.help.option.path" | "new.help.option.target" | "new.help.option.sender" | "new.help.option.sdk" | "new.help.option.preset" | "new.help.option.packageManager" | "new.help.option.apiBaseUrl" | "new.help.option.force" | "new.help.option.offline" | "new.help.option.nonInteractive" | "new.help.option.format" | "new.help.option.dryRun" | "new.help.option.language" | "init.help.usage" | "init.help.body" | "prompt.control.move" | "prompt.control.select" | "prompt.control.quit" | "prompt.intro.setup" | "scaffold.verb.created" | "scaffold.verb.initialized" | "scaffold.verb.installedExample" | "scaffold.headline" | "scaffold.choices" | "scaffold.choice.app" | "scaffold.choice.sdk" | "scaffold.choice.sender" | "scaffold.choice.starter" | "scaffold.wrote" | "scaffold.wouldWrite" | "scaffold.next.install" | "scaffold.next.secrets" | "scaffold.next.createInput" | "scaffold.next.render" | "cloud.skipped" | "cloud.dashboardProject" | "cloud.devKey" | "cloud.projectId" | "cloud.warning.placeholder" | "cloud.warning.offline" | "cloud.warning.dryRun" | "login.already" | "login.complete" | "login.credential" | "login.help.title" | "login.help.usage" | "login.help.body" | "logout.done" | "logout.none" | "logout.help.title" | "logout.help.usage" | "whoami.notLoggedIn" | "whoami.api" | "whoami.anonymous" | "whoami.help.title" | "whoami.help.usage" | "doctor.title" | "doctor.config.ok" | "doctor.config.missing" | "doctor.package.ok" | "doctor.package.missing" | "doctor.sdk.ok" | "doctor.sdk.missing" | "doctor.apiKey.ok" | "doctor.apiKey.missing" | "doctor.label.deployment" | "doctor.label.deploymentReachable" | "doctor.label.apiKeyAccepted" | "doctor.label.cliVersion" | "doctor.network.offline" | "doctor.network.noOrigin" | "doctor.health.ok" | "doctor.health.failed" | "doctor.key.skippedNoKey" | "doctor.key.skippedNoHealth" | "doctor.key.liveOne" | "doctor.key.liveMany" | "doctor.version.offline" | "doctor.version.unknown" | "doctor.version.stale" | "doctor.version.latest" | "doctor.probe.noNetwork" | "doctor.probe.noNetworkKey" | "doctor.probe.nonJson" | "doctor.probe.rejected" | "doctor.baseUrl.placeholder" | "doctor.baseUrl.invalid" | "doctor.baseUrl.default" | "doctor.baseUrl.production" | "doctor.baseUrl.override" | "doctor.baseUrl.origin.flag" | "doctor.baseUrl.origin.project" | "doctor.help.usage" | "doctor.help.checks" | "doctor.help.baseUrl" | "doctor.help.network" | "doctor.help.version" | "doctor.help.offline" | "update.unreachable" | "update.alreadyLatest" | "update.available" | "update.ephemeral" | "update.runToInstall" | "update.availableRun" | "update.failed" | "update.done" | "update.help.usage" | "update.help.body" | "update.help.global" | "update.help.check" | "update.help.silence" | "dev.title" | "dev.apiBaseUrl" | "dev.hosted" | "dev.step1" | "dev.step1.detail" | "dev.step2" | "dev.step3" | "dev.step3.detail" | "dev.help.usage" | "dev.help.body" | "createInput.title" | "createInput.warning" | "createInput.footer" | "createInput.error.noFetch" | "createInput.error.noKey" | "createInput.error.apiStatus" | "createInput.help.usage" | "createInput.help.option.preset" | "createInput.help.option.label" | "createInput.help.option.externalId" | "createInput.help.option.apiBaseUrl" | "createInput.help.option.apiKey" | "createInput.help.option.expiresInMs" | "examples.title" | "examples.reactIos" | "examples.reactOwnedSender" | "examples.rawHttp" | "examples.iosOwnedSender" | "examples.installOne" | "examples.help.usage.list" | "examples.help.usage.install" | "agent.title" | "agent.intro" | "agent.printSkill" | "agent.installSkill" | "agent.wouldWrite" | "agent.installed" | "agent.next" | "agent.error.exists" | "agent.help.usage.bare" | "agent.help.usage.print" | "agent.help.usage.install" | "agent.help.paths" | "agent.help.body" | "cloud.authorize" | "cloud.browserOpened" | "cloud.browserFailed" | "cloud.error.notLoggedIn" | "cloud.error.authStatus" | "cloud.error.authExpired" | "cloud.error.noFetch" | "cloud.error.unreachable" | "cloud.error.endpointMissing" | "cloud.error.invalidResponse" | "cloud.error.requestFailed" | "cloud.error.badOrigin" | "cloud.error.configUnreadable" | "cloud.error.envConflict" | "notice.update.available" | "notice.update.ephemeral" | "notice.update.install" | "error.appNameRequired" | "error.plan.ownIosNeedsSwift" | "error.plan.swiftNeedsOwnIos" | "error.plan.iosNeedsOwnIos" | "error.plan.headlessSenderSdk" | "error.unknownChoice" | "error.refuseOverwrite" | "error.expectedHttpOrigin" | "error.expectedBareOrigin" | "error.noHome" | "error.unknownCommand" | "error.unsupportedOption" | "error.optionNoValue" | "error.optionNeedsValue" | "error.expiresInMs" | "error.interactiveNeedsTty" | "error.noChoices" | "error.httpsDocsOnly" | "error.httpUrlsOnly", string>>;
|
|
422
|
+
catalog: Partial<Record<"language.word" | "language.prompt.helper" | "language.saved" | "language.current" | "language.source.flag" | "language.source.env" | "language.source.config" | "language.source.default" | "language.available" | "language.unknown" | "language.saveFailed" | "language.help.title" | "language.help.usage.list" | "language.help.usage.set" | "language.help.body" | "language.help.override" | "word.usage" | "word.options" | "word.commands" | "word.next" | "word.examples" | "help.title" | "help.usage.main" | "help.command.guide" | "help.command.options" | "help.command.language" | "help.command.login" | "help.command.logout" | "help.command.whoami" | "help.command.new" | "help.command.init" | "help.command.dev" | "help.command.doctor" | "help.command.update" | "help.command.createInput" | "help.command.examples" | "help.command.agent" | "help.startHere" | "guide.title" | "guide.intro" | "guide.path.webIos" | "guide.path.webOwned" | "guide.path.svelteIos" | "guide.path.desktop" | "guide.path.ownIos" | "guide.note.keys" | "guide.note.provisioning" | "guide.note.offline" | "options.title" | "options.machineReadable" | "options.help.body" | "field.appName" | "field.target" | "field.sender" | "field.sdk" | "field.preset" | "field.packageManager" | "field.apiBaseUrl" | "field.project" | "field.folder" | "field.sdkShort" | "field.sender.helper" | "field.sdk.helper" | "field.appName.error" | "field.appName.preview" | "choice.target.web.label" | "choice.target.web.summary" | "choice.target.web.explanation" | "choice.target.web.docs" | "choice.target.desktop.label" | "choice.target.desktop.summary" | "choice.target.desktop.explanation" | "choice.target.desktop.docs" | "choice.target.ios.label" | "choice.target.ios.summary" | "choice.target.ios.explanation" | "choice.target.ios.docs" | "choice.target.headless.label" | "choice.target.headless.summary" | "choice.target.headless.explanation" | "choice.target.headless.docs" | "choice.sender.remotedrawIos.label" | "choice.sender.remotedrawIos.hint.scan" | "choice.sender.remotedrawIos.hint.joinUrl" | "choice.sender.remotedrawIos.summary" | "choice.sender.remotedrawIos.explanation" | "choice.sender.remotedrawIos.docs" | "choice.sender.embeddedWeb.label" | "choice.sender.embeddedWeb.hint" | "choice.sender.embeddedWeb.summary" | "choice.sender.embeddedWeb.explanation" | "choice.sender.embeddedWeb.docs" | "choice.sender.ownIos.label" | "choice.sender.ownIos.hint" | "choice.sender.ownIos.summary" | "choice.sender.ownIos.explanation" | "choice.sender.ownIos.docs" | "choice.sender.headless.label" | "choice.sender.headless.hint.noUi" | "choice.sender.headless.hint.httpRoutes" | "choice.sender.headless.summary" | "choice.sender.headless.explanation" | "choice.sender.headless.docs" | "choice.sdk.react.label" | "choice.sdk.react.hint" | "choice.sdk.react.summary" | "choice.sdk.react.explanation" | "choice.sdk.react.docs" | "choice.sdk.svelte.label" | "choice.sdk.svelte.hint" | "choice.sdk.svelte.summary" | "choice.sdk.svelte.explanation" | "choice.sdk.svelte.docs" | "choice.sdk.js.label.client" | "choice.sdk.js.label.noFramework" | "choice.sdk.js.hint.client" | "choice.sdk.js.hint.noFramework" | "choice.sdk.js.summary" | "choice.sdk.js.explanation" | "choice.sdk.js.docs" | "choice.sdk.swift.label" | "choice.sdk.swift.hint" | "choice.sdk.swift.summary" | "choice.sdk.swift.explanation" | "choice.sdk.swift.docs" | "choice.sdk.headless.label" | "choice.sdk.headless.hint" | "choice.sdk.headless.summary" | "choice.sdk.headless.explanation" | "choice.sdk.headless.docs" | "choice.preset.approval.summary" | "choice.preset.approval.explanation" | "choice.preset.approval.docs" | "choice.preset.sketch.label" | "choice.preset.sketch.hint" | "choice.preset.sketch.summary" | "choice.preset.sketch.explanation" | "choice.preset.sketch.docs" | "choice.preset.photoMarkup.summary" | "choice.preset.photoMarkup.explanation" | "choice.preset.photoMarkup.docs" | "choice.preset.pdfMarkup.summary" | "choice.preset.pdfMarkup.explanation" | "choice.preset.pdfMarkup.docs" | "choice.preset.mapMarkup.summary" | "choice.preset.mapMarkup.explanation" | "choice.preset.mapMarkup.docs" | "choice.preset.screenMarkup.label" | "choice.preset.screenMarkup.hint" | "choice.preset.screenMarkup.summary" | "choice.preset.screenMarkup.explanation" | "choice.preset.screenMarkup.docs" | "choice.preset.designReview.summary" | "choice.preset.designReview.explanation" | "choice.preset.designReview.docs" | "choice.preset.pointer.summary" | "choice.preset.pointer.explanation" | "choice.preset.pointer.docs" | "choice.packageManager.npm.summary" | "choice.packageManager.npm.explanation" | "choice.packageManager.npm.docs" | "choice.packageManager.pnpm.summary" | "choice.packageManager.pnpm.explanation" | "choice.packageManager.pnpm.docs" | "choice.packageManager.yarn.summary" | "choice.packageManager.yarn.explanation" | "choice.packageManager.yarn.docs" | "choice.packageManager.bun.summary" | "choice.packageManager.bun.explanation" | "choice.packageManager.bun.docs" | "wizard.title.setup" | "wizard.title.review" | "wizard.title.confirm" | "wizard.title.executing" | "wizard.title.success" | "wizard.title.error" | "wizard.title.interrupted" | "wizard.title.cancelled" | "wizard.confirm.no" | "wizard.confirm.yes" | "wizard.hint.replaceDefault" | "wizard.hint.edit" | "wizard.control.next" | "wizard.control.back" | "wizard.control.quitCtrlC" | "wizard.control.quitQ" | "wizard.control.move" | "wizard.control.steps" | "wizard.control.choose" | "wizard.control.docs" | "wizard.control.forward" | "wizard.control.backArrow" | "wizard.control.confirm" | "wizard.progress.step" | "wizard.card.help" | "wizard.card.summary" | "wizard.value.default" | "wizard.executing.detail" | "wizard.created.at" | "wizard.next.command" | "wizard.docs.line" | "wizard.tagline.setup" | "wizard.tagline" | "wizard.docs.openFailed" | "wizard.docs.button" | "new.help.usage.bare" | "new.help.usage.named" | "new.help.interactive" | "new.help.option.path" | "new.help.option.target" | "new.help.option.sender" | "new.help.option.sdk" | "new.help.option.preset" | "new.help.option.packageManager" | "new.help.option.apiBaseUrl" | "new.help.option.force" | "new.help.option.offline" | "new.help.option.nonInteractive" | "new.help.option.format" | "new.help.option.dryRun" | "new.help.option.language" | "init.help.usage" | "init.help.body" | "prompt.control.move" | "prompt.control.select" | "prompt.control.quit" | "prompt.intro.setup" | "scaffold.verb.created" | "scaffold.verb.initialized" | "scaffold.verb.installedExample" | "scaffold.headline" | "scaffold.choices" | "scaffold.choice.app" | "scaffold.choice.sdk" | "scaffold.choice.sender" | "scaffold.choice.starter" | "scaffold.wrote" | "scaffold.wouldWrite" | "scaffold.next.install" | "scaffold.next.secrets" | "scaffold.next.createInput" | "scaffold.next.render" | "cloud.skipped" | "cloud.dashboardProject" | "cloud.devKey" | "cloud.projectId" | "cloud.warning.placeholder" | "cloud.warning.offline" | "cloud.warning.dryRun" | "login.already" | "login.complete" | "login.credential" | "login.help.title" | "login.help.usage" | "login.help.body" | "logout.done" | "logout.none" | "logout.help.title" | "logout.help.usage" | "whoami.notLoggedIn" | "whoami.api" | "whoami.anonymous" | "whoami.help.title" | "whoami.help.usage" | "doctor.title" | "doctor.config.ok" | "doctor.config.missing" | "doctor.package.ok" | "doctor.package.missing" | "doctor.sdk.ok" | "doctor.sdk.missing" | "doctor.apiKey.ok" | "doctor.apiKey.missing" | "doctor.label.deployment" | "doctor.label.deploymentReachable" | "doctor.label.apiKeyAccepted" | "doctor.label.cliVersion" | "doctor.network.offline" | "doctor.network.noOrigin" | "doctor.health.ok" | "doctor.health.failed" | "doctor.key.skippedNoKey" | "doctor.key.skippedNoHealth" | "doctor.key.liveOne" | "doctor.key.liveMany" | "doctor.version.offline" | "doctor.version.unknown" | "doctor.version.stale" | "doctor.version.latest" | "doctor.probe.noNetwork" | "doctor.probe.noNetworkKey" | "doctor.probe.nonJson" | "doctor.probe.rejected" | "doctor.baseUrl.placeholder" | "doctor.baseUrl.invalid" | "doctor.baseUrl.default" | "doctor.baseUrl.production" | "doctor.baseUrl.override" | "doctor.baseUrl.origin.flag" | "doctor.baseUrl.origin.project" | "doctor.help.usage" | "doctor.help.checks" | "doctor.help.baseUrl" | "doctor.help.network" | "doctor.help.version" | "doctor.help.offline" | "update.unreachable" | "update.alreadyLatest" | "update.available" | "update.ephemeral" | "update.runToInstall" | "update.availableRun" | "update.failed" | "update.done" | "update.help.usage" | "update.help.body" | "update.help.global" | "update.help.check" | "update.help.silence" | "dev.title" | "dev.apiBaseUrl" | "dev.hosted" | "dev.step1" | "dev.step1.detail" | "dev.step2" | "dev.step3" | "dev.step3.detail" | "dev.help.usage" | "dev.help.body" | "createInput.title" | "createInput.warning" | "createInput.footer" | "createInput.error.noFetch" | "createInput.error.noKey" | "createInput.error.apiStatus" | "createInput.help.usage" | "createInput.help.option.preset" | "createInput.help.option.label" | "createInput.help.option.externalId" | "createInput.help.option.apiBaseUrl" | "createInput.help.option.apiKey" | "createInput.help.option.expiresInMs" | "examples.title" | "examples.reactIos" | "examples.reactOwnedSender" | "examples.rawHttp" | "examples.iosOwnedSender" | "examples.installOne" | "examples.help.usage.list" | "examples.help.usage.install" | "agent.title" | "agent.intro" | "agent.printSkill" | "agent.installSkill" | "agent.wouldWrite" | "agent.installed" | "agent.next" | "agent.error.exists" | "agent.help.usage.bare" | "agent.help.usage.print" | "agent.help.usage.install" | "agent.help.paths" | "agent.help.body" | "cloud.authorize" | "cloud.browserOpened" | "cloud.browserFailed" | "cloud.error.notLoggedIn" | "cloud.error.authStatus" | "cloud.error.authExpired" | "cloud.error.noFetch" | "cloud.error.unreachable" | "cloud.error.endpointMissing" | "cloud.error.invalidResponse" | "cloud.error.requestFailed" | "cloud.error.badOrigin" | "cloud.error.configUnreadable" | "cloud.error.envConflict" | "notice.update.available" | "notice.update.ephemeral" | "notice.update.install" | "error.appNameRequired" | "error.plan.ownIosNeedsSwift" | "error.plan.swiftNeedsOwnIos" | "error.plan.iosNeedsOwnIos" | "error.plan.headlessSenderSdk" | "error.unknownChoice" | "error.refuseOverwrite" | "error.expectedHttpOrigin" | "error.expectedBareOrigin" | "error.noHome" | "error.unknownCommand" | "error.unsupportedOption" | "error.optionNoValue" | "error.optionNeedsValue" | "error.expiresInMs" | "error.interactiveNeedsTty" | "error.noChoices" | "error.httpsDocsOnly" | "error.httpUrlsOnly", string>>;
|
|
429
423
|
};
|
|
430
424
|
};
|
|
431
425
|
export type Locale = keyof typeof LOCALES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAG7B,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locales/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAG7B,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAawB,CAAC;AAE7C,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,OAAO,CAAC;AAE1C,6EAA6E;AAC7E,eAAO,MAAM,aAAa,EAAE,MAAa,CAAC;AAE1C,eAAO,MAAM,iBAAiB,EAA2B,MAAM,EAAE,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC"}
|
package/dist/locales/nl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/locales/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/locales/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,EAAE,aA6lBhB,CAAC"}
|
package/dist/locales/nl.js
CHANGED
|
@@ -146,14 +146,6 @@ export const nl = {
|
|
|
146
146
|
"choice.sdk.headless.explanation": "Kies dit als een andere taal of eigen client de HTTP-API aanroept. De wizard voegt geen frameworkafhankelijkheid toe.",
|
|
147
147
|
"choice.sdk.headless.docs": "HTTP API-docs openen",
|
|
148
148
|
// ── Startpunt ─────────────────────────────────────────────────────────
|
|
149
|
-
"choice.preset.signature.label": "Handtekeningstrook",
|
|
150
|
-
"choice.preset.signature.hint": "Productklaar merkveld met exacte oppervlaktekoppeling.",
|
|
151
|
-
"choice.preset.signature.summary": "Een begrensd handtekeningveld met exact passend telefoonoppervlak.",
|
|
152
|
-
"choice.preset.signature.explanation": "Kies dit voor een handtekeningveld dat je zelf om RemoteDrawReceiver heen vormgeeft, met een exact passend telefoonoppervlak. Je kunt logo, tekst, kleur en omliggende formulier-UI aanpassen.",
|
|
153
|
-
"choice.preset.signature.docs": "Handtekeningdocs openen",
|
|
154
|
-
"choice.preset.initials.summary": "Een klein tekenveld voor initialen.",
|
|
155
|
-
"choice.preset.initials.explanation": "Gebruik dit wanneer iemand op één of meerdere plekken korte initialen moet plaatsen, bijvoorbeeld bij documentcontrole.",
|
|
156
|
-
"choice.preset.initials.docs": "Initialendocs openen",
|
|
157
149
|
"choice.preset.approval.summary": "Vrije tekeninvoer voor een visueel akkoord.",
|
|
158
150
|
"choice.preset.approval.explanation": "Gebruik dit voor goedkeuringen waarbij een vink, paraaf of korte markering voldoende is en je workflow de status beheert.",
|
|
159
151
|
"choice.preset.approval.docs": "Goedkeuringsdocs openen",
|
|
@@ -171,6 +163,8 @@ export const nl = {
|
|
|
171
163
|
"choice.preset.mapMarkup.summary": "Tekeningen en aanwijzingen op een kaart.",
|
|
172
164
|
"choice.preset.mapMarkup.explanation": "Gebruik dit voor routes, locaties of ruimtelijke feedback. Je app beheert de kaart en viewport; RemoteDraw synchroniseert de invoer.",
|
|
173
165
|
"choice.preset.mapMarkup.docs": "Kaartannotatiedocs openen",
|
|
166
|
+
"choice.preset.screenMarkup.label": "Schermannotatie",
|
|
167
|
+
"choice.preset.screenMarkup.hint": "Teken over een scherm of venster dat je ontvanger deelt.",
|
|
174
168
|
"choice.preset.screenMarkup.summary": "Aantekeningen op een scherm of applicatieweergave.",
|
|
175
169
|
"choice.preset.screenMarkup.explanation": "Gebruik dit voor support, demo's en UI-feedback. Je ontvanger levert het schermbeeld waarop de telefoonmarkeringen worden geprojecteerd.",
|
|
176
170
|
"choice.preset.screenMarkup.docs": "Schermaantekeningdocs openen",
|
|
@@ -237,7 +231,7 @@ export const nl = {
|
|
|
237
231
|
"new.help.option.target": "web, desktop, ios of headless.",
|
|
238
232
|
"new.help.option.sender": "remotedraw-ios, embedded-web, own-ios of headless.",
|
|
239
233
|
"new.help.option.sdk": "react, svelte, js, swift of headless.",
|
|
240
|
-
"new.help.option.preset": "
|
|
234
|
+
"new.help.option.preset": "sketch of screenMarkup. De overige API-presets blijven werken voor bestaande integraties.",
|
|
241
235
|
"new.help.option.packageManager": "npm, pnpm, yarn of bun.",
|
|
242
236
|
"new.help.option.apiBaseUrl": "Standaard API-origin voor de gegenereerde configuratie.",
|
|
243
237
|
"new.help.option.force": "Overschrijf gegenereerde bestanden en bestaande RemoteDraw-waarden in .env.local.",
|
|
@@ -366,7 +360,7 @@ export const nl = {
|
|
|
366
360
|
"createInput.error.noFetch": "Deze runtime kan geen HTTP-verzoeken uitvoeren.",
|
|
367
361
|
"createInput.error.noKey": "create-input --execute vereist --api-key of REMOTEDRAW_API_KEY met een rd_sk_...-serversleutel.",
|
|
368
362
|
"createInput.error.apiStatus": "De RemoteDraw-API gaf {status} terug.",
|
|
369
|
-
"createInput.help.usage": " remotedraw create-input [--preset
|
|
363
|
+
"createInput.help.usage": " remotedraw create-input [--preset sketch] [--json|--curl|--execute]",
|
|
370
364
|
"createInput.help.option.preset": "Preset voor sessie en invoer.",
|
|
371
365
|
"createInput.help.option.label": "Label van het doel in de ontvanger.",
|
|
372
366
|
"createInput.help.option.externalId": "Eigen correlatie-ID van je app.",
|