fieldsmith 0.1.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.
Files changed (42) hide show
  1. package/README.md +499 -7
  2. package/dist/cli/index.js +283 -20
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/schema.js +43 -3
  5. package/dist/cli/schema.js.map +1 -1
  6. package/dist/config.js +36 -3
  7. package/dist/config.js.map +1 -1
  8. package/dist/csv.js +119 -0
  9. package/dist/csv.js.map +1 -0
  10. package/dist/icon/name.js +48 -0
  11. package/dist/icon/name.js.map +1 -0
  12. package/dist/icon/render.js +0 -21
  13. package/dist/icon/render.js.map +1 -1
  14. package/dist/kintone/client.js +6 -1
  15. package/dist/kintone/client.js.map +1 -1
  16. package/dist/kintone/deploy.js +146 -15
  17. package/dist/kintone/deploy.js.map +1 -1
  18. package/dist/kintone/link.js +428 -0
  19. package/dist/kintone/link.js.map +1 -0
  20. package/dist/llm/generate.js +20 -4
  21. package/dist/llm/generate.js.map +1 -1
  22. package/dist/llm/prompt.js +3 -1
  23. package/dist/llm/prompt.js.map +1 -1
  24. package/dist/spec/appSpec.js +189 -3
  25. package/dist/spec/appSpec.js.map +1 -1
  26. package/dist/spec/checkRecords.js +191 -0
  27. package/dist/spec/checkRecords.js.map +1 -0
  28. package/dist/spec/describeForm.js +65 -0
  29. package/dist/spec/describeForm.js.map +1 -0
  30. package/dist/spec/diff.js +170 -8
  31. package/dist/spec/diff.js.map +1 -1
  32. package/dist/spec/fieldSpec.js +60 -8
  33. package/dist/spec/fieldSpec.js.map +1 -1
  34. package/dist/spec/fromKintone.js +127 -15
  35. package/dist/spec/fromKintone.js.map +1 -1
  36. package/dist/spec/layout.js +333 -30
  37. package/dist/spec/layout.js.map +1 -1
  38. package/dist/spec/linkSpec.js +0 -0
  39. package/dist/spec/linkSpec.js.map +1 -0
  40. package/dist/spec/toKintone.js +38 -3
  41. package/dist/spec/toKintone.js.map +1 -1
  42. package/package.json +4 -2
@@ -0,0 +1,428 @@
1
+ import { collectLayoutFields } from "../spec/layout.js";
2
+ import { describeAppRef, } from "../spec/linkSpec.js";
3
+ import { findPendingChanges, waitForDeployment } from "./deploy.js";
4
+ export class LinkValidationError extends Error {
5
+ issues;
6
+ constructor(message, issues) {
7
+ super(message);
8
+ this.issues = issues;
9
+ this.name = "LinkValidationError";
10
+ }
11
+ }
12
+ /**
13
+ * 何が起きるかを求める。**kintone を変更しない。**
14
+ *
15
+ * 相手アプリのフィールドが実在するかは繋がないと確かめようがないので、
16
+ * `--dry-run` でも読み取りだけは接続する。`deploy --dry-run` (無接続) とは性格が違う。
17
+ */
18
+ export async function planLinks(file, kintone, options = {}) {
19
+ const report = options.onProgress ?? (() => { });
20
+ report({ step: "resolve", message: "アプリを解決しています" });
21
+ const resolved = await resolveApps(file, kintone);
22
+ report({ step: "inspect", message: "フォームの現状を読んでいます" });
23
+ const forms = new Map();
24
+ for (const appId of new Set([...resolved.values()])) {
25
+ forms.set(appId, await readForm(appId, kintone));
26
+ }
27
+ const issues = [];
28
+ const entries = [];
29
+ file.links.forEach((link, index) => {
30
+ const at = (key) => `links.${index}.${key}`;
31
+ const appId = resolved.get(refKey(link.app));
32
+ const relatedAppId = resolved.get(refKey(link.relatedApp));
33
+ const form = forms.get(appId);
34
+ const related = forms.get(relatedAppId);
35
+ const found = validate(link, at, form, related, issues);
36
+ if (!found)
37
+ return;
38
+ const desired = link.type === "REFERENCE_TABLE"
39
+ ? toReferenceTable(link, relatedAppId)
40
+ : toLookup(link, relatedAppId);
41
+ const property = form.properties[link.code];
42
+ const settingKey = link.type === "REFERENCE_TABLE" ? "referenceTable" : "lookup";
43
+ const current = property?.[settingKey];
44
+ const changes = current === undefined ? [] : differences(current, desired);
45
+ const action = property === undefined ? "add" : current === undefined || changes.length > 0 ? "update" : "unchanged";
46
+ entries.push({
47
+ link,
48
+ appId,
49
+ relatedAppId,
50
+ action,
51
+ changes,
52
+ moves: link.type === "REFERENCE_TABLE" && needsMove(form.layout, link.code, link.placeAfter),
53
+ ...(property === undefined ? {} : { hostType: String(property["type"]) }),
54
+ });
55
+ });
56
+ if (issues.length > 0) {
57
+ throw new LinkValidationError("結線を反映できません", issues);
58
+ }
59
+ return { entries, warnings: unmanagedLinks(file, forms, resolved) };
60
+ }
61
+ /** アプリコードをアプリ ID に解決する。`relatedApp.code` の解釈に頼らず、こちらで引く。 */
62
+ async function resolveApps(file, kintone) {
63
+ const resolved = new Map();
64
+ const codes = new Set();
65
+ for (const link of file.links) {
66
+ for (const ref of [link.app, link.relatedApp]) {
67
+ if (typeof ref === "number")
68
+ resolved.set(refKey(ref), String(ref));
69
+ else
70
+ codes.add(ref);
71
+ }
72
+ }
73
+ if (codes.size === 0)
74
+ return resolved;
75
+ // アプリコードとして通らない文字列だと kintone 側で弾かれる。
76
+ // 生のエラーを出すと、どの行が悪いのか分からない。
77
+ let found;
78
+ try {
79
+ found = await kintone.call((client) => client.app.getApps({ codes: [...codes] }));
80
+ }
81
+ catch (error) {
82
+ throw new LinkValidationError("結線を反映できません", [
83
+ {
84
+ path: "app",
85
+ message: `アプリコードを引けませんでした (${[...codes].map((c) => `"${c}"`).join(", ")}): ` +
86
+ `${error.message}`,
87
+ },
88
+ ]);
89
+ }
90
+ for (const app of found.apps)
91
+ resolved.set(refKey(app.code), app.appId);
92
+ const missing = [...codes].filter((code) => !resolved.has(refKey(code)));
93
+ if (missing.length > 0) {
94
+ throw new LinkValidationError("結線を反映できません", missing.map((code) => ({
95
+ path: "app",
96
+ message: `アプリコード "${code}" のアプリが見つかりません。` +
97
+ " kintone 側でアプリコードが設定されているか確認してください。",
98
+ })));
99
+ }
100
+ return resolved;
101
+ }
102
+ async function readForm(appId, kintone) {
103
+ const [settings, form, layout] = await Promise.all([
104
+ kintone.call((client) => client.app.getAppSettings({ app: appId, preview: true })),
105
+ kintone.call((client) => client.app.getFormFields({ app: appId, preview: true })),
106
+ kintone.call((client) => client.app.getFormLayout({ app: appId, preview: true })),
107
+ ]);
108
+ return {
109
+ appId,
110
+ name: settings.name,
111
+ properties: form.properties,
112
+ layout: layout.layout,
113
+ };
114
+ }
115
+ /* ------------------------------ 検証 ------------------------------ */
116
+ /** ルックアップにできるフィールド型。実体はこれらに設定が付いたもの。 */
117
+ const LOOKUP_HOST_TYPES = new Set(["SINGLE_LINE_TEXT", "NUMBER", "LINK"]);
118
+ function validate(link, at, form, related, issues) {
119
+ const before = issues.length;
120
+ const here = (code, key) => {
121
+ if (form.properties[code] === undefined) {
122
+ issues.push({ path: at(key), message: `"${code}" は ${form.name} にありません` });
123
+ }
124
+ };
125
+ const there = (code, key) => {
126
+ if (related.properties[code] === undefined) {
127
+ issues.push({ path: at(key), message: `"${code}" は参照先の ${related.name} にありません` });
128
+ }
129
+ };
130
+ if (link.type === "REFERENCE_TABLE") {
131
+ here(link.condition.field, "condition.field");
132
+ there(link.condition.relatedField, "condition.relatedField");
133
+ link.displayFields.forEach((code, i) => there(code, `displayFields.${i}`));
134
+ if (link.placeAfter !== undefined)
135
+ here(link.placeAfter, "placeAfter");
136
+ // 既に在るなら、それが関連レコード一覧であること。別の型を踏み潰さない。
137
+ const property = form.properties[link.code];
138
+ if (property !== undefined && String(property["type"]) !== "REFERENCE_TABLE") {
139
+ issues.push({
140
+ path: at("code"),
141
+ message: `"${link.code}" は既に ${String(property["type"])} として存在します。` +
142
+ " 別のフィールドコードにしてください。",
143
+ });
144
+ }
145
+ return issues.length === before;
146
+ }
147
+ // ルックアップは既にあるフィールドに設定を足すだけ。無ければ AppSpec 側の問題。
148
+ const property = form.properties[link.code];
149
+ if (property === undefined) {
150
+ issues.push({
151
+ path: at("code"),
152
+ message: `"${link.code}" は ${form.name} にありません。` +
153
+ " ルックアップにするフィールドは AppSpec で作ってください (link は作りません)。",
154
+ });
155
+ }
156
+ else if (!LOOKUP_HOST_TYPES.has(String(property["type"]))) {
157
+ issues.push({
158
+ path: at("code"),
159
+ message: `"${link.code}" は ${String(property["type"])} なのでルックアップにできません` +
160
+ ` (${[...LOOKUP_HOST_TYPES].join(" / ")} のいずれか)。`,
161
+ });
162
+ }
163
+ const key = related.properties[link.relatedKeyField];
164
+ if (key === undefined) {
165
+ issues.push({
166
+ path: at("relatedKeyField"),
167
+ message: `"${link.relatedKeyField}" は参照先の ${related.name} にありません`,
168
+ });
169
+ }
170
+ else if (key["unique"] !== true && String(key["type"]) !== "RECORD_NUMBER") {
171
+ // kintone の決まり。ここで弾かないとデプロイの途中で落ちる。
172
+ // レコード番号は常に一意なので「重複禁止」の設定項目そのものを持たない (unique が返らない)。
173
+ // それでもルックアップのキーには使える。業務キーが一意にならないアプリではこれしか無い。
174
+ issues.push({
175
+ path: at("relatedKeyField"),
176
+ message: `"${link.relatedKeyField}" に重複禁止が設定されていません。` +
177
+ " ルックアップのキーには重複禁止が要ります。",
178
+ });
179
+ }
180
+ link.fieldMappings?.forEach((mapping, i) => {
181
+ here(mapping.field, `fieldMappings.${i}.field`);
182
+ there(mapping.relatedField, `fieldMappings.${i}.relatedField`);
183
+ });
184
+ link.lookupPickerFields?.forEach((code, i) => there(code, `lookupPickerFields.${i}`));
185
+ return issues.length === before;
186
+ }
187
+ /* ------------------------------ kintone に送る形 ------------------------------ */
188
+ export function toReferenceTable(link, relatedAppId) {
189
+ const setting = {
190
+ relatedApp: { app: relatedAppId },
191
+ condition: { field: link.condition.field, relatedField: link.condition.relatedField },
192
+ displayFields: [...link.displayFields],
193
+ };
194
+ assign(setting, "filterCond", link.filterCond);
195
+ assign(setting, "sort", link.sort);
196
+ assign(setting, "size", link.size === undefined ? undefined : String(link.size));
197
+ return setting;
198
+ }
199
+ export function toLookup(link, relatedAppId) {
200
+ const setting = {
201
+ relatedApp: { app: relatedAppId },
202
+ relatedKeyField: link.relatedKeyField,
203
+ };
204
+ assign(setting, "fieldMappings", link.fieldMappings);
205
+ assign(setting, "lookupPickerFields", link.lookupPickerFields);
206
+ assign(setting, "filterCond", link.filterCond);
207
+ assign(setting, "sort", link.sort);
208
+ return setting;
209
+ }
210
+ function assign(target, key, value) {
211
+ if (value !== undefined)
212
+ target[key] = value;
213
+ }
214
+ /**
215
+ * 書いた項目だけを比べる。
216
+ *
217
+ * **kintone は書かなかった項目を勝手に埋める** (`sort` に `レコード番号 desc`、`size` に `5`)。
218
+ * 全部を比べると、中身は同じなのに毎回「変わった」と言い続けることになる。
219
+ * AppSpec の「書かれていない項目は現状維持」と同じ扱いにする。
220
+ */
221
+ export function differences(current, desired) {
222
+ const changed = [];
223
+ for (const [key, want] of Object.entries(desired)) {
224
+ const have = key === "relatedApp"
225
+ ? { app: current["relatedApp"]?.app }
226
+ : current[key];
227
+ if (JSON.stringify(have) !== JSON.stringify(want))
228
+ changed.push(key);
229
+ }
230
+ return changed;
231
+ }
232
+ /* ------------------------------ 位置 ------------------------------ */
233
+ /** そのフィールドが、指定の位置に居ないか。 */
234
+ export function needsMove(layout, code, after) {
235
+ if (after === undefined)
236
+ return false;
237
+ const anchor = rowIndexOf(layout, after);
238
+ const target = rowIndexOf(layout, code);
239
+ if (anchor === -1)
240
+ return false;
241
+ // まだ無い場合も、追加したあとに動かす必要がある。
242
+ return target === -1 || target !== anchor + 1;
243
+ }
244
+ /**
245
+ * フィールドを、指定したフィールドの直後の行へ移す。
246
+ *
247
+ * 元の行に他のフィールドが居る場合は、そこから抜き出して単独の行にする。
248
+ * レイアウト変更 API はフォーム上のすべてのフィールドを求めるので、取りこぼさない。
249
+ */
250
+ export function moveAfter(layout, code, after, type = "REFERENCE_TABLE") {
251
+ const moved = { code, type };
252
+ // いったん取り除く。空になった行は落とす。
253
+ const without = [];
254
+ for (const row of layout) {
255
+ if (row.type !== "ROW") {
256
+ without.push(row);
257
+ continue;
258
+ }
259
+ const fields = (row.fields ?? []).filter((field) => field.code !== code);
260
+ if (fields.length > 0)
261
+ without.push({ type: "ROW", fields });
262
+ }
263
+ const anchor = rowIndexOf(without, after);
264
+ const row = { type: "ROW", fields: [moved] };
265
+ if (anchor === -1)
266
+ return [...without, row];
267
+ return [...without.slice(0, anchor + 1), row, ...without.slice(anchor + 1)];
268
+ }
269
+ function rowIndexOf(layout, code) {
270
+ return layout.findIndex((row) => collectLayoutFields([row]).some((field) => field.code === code));
271
+ }
272
+ /* ------------------------------ 消さない ------------------------------ */
273
+ /**
274
+ * ファイルに無い結線が kintone 側にある場合に知らせる。
275
+ * **消さない。** フィールドを削除しない方針と揃える。
276
+ */
277
+ function unmanagedLinks(file, forms, resolved) {
278
+ const managed = new Set(file.links.map((link) => `${resolved.get(refKey(link.app))}${link.code}`));
279
+ const warnings = [];
280
+ for (const [appId, form] of forms) {
281
+ for (const [code, property] of Object.entries(form.properties)) {
282
+ const isLink = String(property["type"]) === "REFERENCE_TABLE" || property["lookup"] !== undefined;
283
+ if (!isLink || managed.has(`${appId}${code}`))
284
+ continue;
285
+ warnings.push(`${form.name} の "${code}" は結線ファイルにありませんが、kintone 側には設定があります` +
286
+ " (link では消しません)。");
287
+ }
288
+ }
289
+ return warnings;
290
+ }
291
+ function refKey(ref) {
292
+ return typeof ref === "number" ? `#${ref}` : `@${ref}`;
293
+ }
294
+ /** 計画を人が読める形にする。 */
295
+ export function describePlan(plan) {
296
+ const lines = [];
297
+ for (const entry of plan.entries) {
298
+ // アプリ ID で書かれているときに「アプリ 776 (776)」と二度言わない。
299
+ const where = typeof entry.link.relatedApp === "number"
300
+ ? `アプリ ${entry.relatedAppId}`
301
+ : `${describeAppRef(entry.link.relatedApp)} → アプリ ${entry.relatedAppId}`;
302
+ const what = `${entry.link.code} → ${where}`;
303
+ if (entry.action === "add")
304
+ lines.push(` + ${what} を作る`);
305
+ else if (entry.action === "update")
306
+ lines.push(` ~ ${what}: ${entry.changes.join(", ")}`);
307
+ else if (entry.moves)
308
+ lines.push(` ~ ${what}: 位置`);
309
+ else
310
+ lines.push(` = ${what} (変更なし)`);
311
+ }
312
+ return lines;
313
+ }
314
+ /**
315
+ * 結線を反映する。
316
+ *
317
+ * **既定では動作テスト環境で止める。** フォームを変える操作なので、
318
+ * kintone の画面で確認してから人が反映を決められるようにする (`update` と同じ)。
319
+ *
320
+ * アプリごとに順に処理する。途中で失敗した場合、それより前のアプリは既に
321
+ * 変わっているので、どこまで進んだかを必ず返す。
322
+ */
323
+ export async function applyLinks(file, kintone, options = {}) {
324
+ const report = options.onProgress ?? (() => { });
325
+ const plan = await planLinks(file, kintone, { onProgress: report });
326
+ const byApp = new Map();
327
+ for (const entry of plan.entries) {
328
+ const list = byApp.get(entry.appId);
329
+ if (list === undefined)
330
+ byApp.set(entry.appId, [entry]);
331
+ else
332
+ list.push(entry);
333
+ }
334
+ const apps = [];
335
+ const pendingApps = [];
336
+ const deploy = async (appId, name, revision, message) => {
337
+ report({ step: "deploy", message: `${name}: ${message}` });
338
+ await kintone.call((client) => client.app.deployApp({ apps: [{ app: appId, revision }] }));
339
+ await waitForDeployment(appId, kintone, options.polling, (progress) => report({ step: "polling", message: progress.message, ...(progress.detail === undefined ? {} : { detail: progress.detail }) }));
340
+ };
341
+ for (const [appId, entries] of byApp) {
342
+ const todo = entries.filter((entry) => entry.action !== "unchanged" || entry.moves);
343
+ if (todo.length === 0) {
344
+ // 結線は揃っていても、前回 --deploy なしで入れた分が動作テスト環境に残っていることがある。
345
+ // 差分は動作テスト環境と比べるので、ここで拾わないと運用環境へ出す手段が無い。
346
+ const pending = await findPendingChanges(appId, kintone);
347
+ if (pending === null)
348
+ continue;
349
+ const app = { appId, name: pending.appName, revision: pending.revision, carriedOver: true };
350
+ if (options.deploy === true) {
351
+ await deploy(appId, pending.appName, pending.revision, "動作テスト環境に残っている変更を、運用環境へ反映します");
352
+ apps.push(app);
353
+ }
354
+ else {
355
+ pendingApps.push(app);
356
+ }
357
+ continue;
358
+ }
359
+ const settings = await kintone.call((client) => client.app.getAppSettings({ app: appId, preview: true }));
360
+ let revision = "-1";
361
+ const additions = {};
362
+ const updates = {};
363
+ for (const entry of entries) {
364
+ if (entry.action === "unchanged")
365
+ continue;
366
+ const setting = entry.link.type === "REFERENCE_TABLE"
367
+ ? { referenceTable: toReferenceTable(entry.link, entry.relatedAppId) }
368
+ : { lookup: toLookup(entry.link, entry.relatedAppId) };
369
+ const property = {
370
+ // 型は変えない。既にあるフィールドはその型のまま、新しく作るのは関連レコード一覧。
371
+ type: entry.link.type === "REFERENCE_TABLE" ? "REFERENCE_TABLE" : hostTypeOf(entry),
372
+ code: entry.link.code,
373
+ ...(entry.link.type === "REFERENCE_TABLE" ? { label: entry.link.label } : {}),
374
+ ...setting,
375
+ };
376
+ if (entry.action === "add")
377
+ additions[entry.link.code] = property;
378
+ else
379
+ updates[entry.link.code] = property;
380
+ }
381
+ if (Object.keys(additions).length > 0) {
382
+ report({
383
+ step: "apply",
384
+ message: `${settings.name}: ${Object.keys(additions).length} 件の関連レコード一覧を作ります`,
385
+ detail: Object.keys(additions).join(", "),
386
+ });
387
+ const result = await kintone.call((client) => client.app.addFormFields({ app: appId, properties: additions }));
388
+ revision = result.revision;
389
+ }
390
+ if (Object.keys(updates).length > 0) {
391
+ report({
392
+ step: "apply",
393
+ message: `${settings.name}: ${Object.keys(updates).length} 件の結線を変更します`,
394
+ detail: Object.keys(updates).join(", "),
395
+ });
396
+ const result = await kintone.call((client) => client.app.updateFormFields({ app: appId, revision, properties: updates }));
397
+ revision = result.revision;
398
+ }
399
+ // 追加したフィールドは kintone がフォーム末尾に置く。位置の指定があれば直す。
400
+ const moving = entries.filter((entry) => entry.link.type === "REFERENCE_TABLE" && entry.link.placeAfter !== undefined);
401
+ if (moving.length > 0) {
402
+ const now = await kintone.call((client) => client.app.getFormLayout({ app: appId, preview: true }));
403
+ let layout = now.layout;
404
+ for (const entry of moving)
405
+ layout = moveAfter(layout, entry.link.code, entry.link.placeAfter);
406
+ report({
407
+ step: "layout",
408
+ message: `${settings.name}: 置き場所を整えます`,
409
+ detail: moving.map((entry) => `${entry.link.code} → ${entry.link.placeAfter} の直後`).join(", "),
410
+ });
411
+ const result = await kintone.call((client) => client.app.updateFormLayout({ app: appId, revision, layout }));
412
+ revision = result.revision;
413
+ }
414
+ if (options.deploy === true) {
415
+ await deploy(appId, settings.name, revision, "運用環境へ反映します");
416
+ }
417
+ apps.push({ appId, name: settings.name, revision });
418
+ }
419
+ return { plan, deployed: options.deploy === true, apps, pendingApps };
420
+ }
421
+ /**
422
+ * ルックアップを載せるフィールドの型。
423
+ * 型は変えない。実物から拾った型をそのまま送り返す。
424
+ */
425
+ function hostTypeOf(entry) {
426
+ return entry.hostType ?? "SINGLE_LINE_TEXT";
427
+ }
428
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/kintone/link.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { zodOutputFormat } from "@anthropic-ai/sdk/helpers/zod";
5
5
  // このスキーマの値は toAppSpecInput() でただのオブジェクトに落としてからコア (zod v3) に渡すため、
6
6
  // 2 つのバージョンが混ざることはない。
7
7
  import * as z from "zod/v4";
8
- import { APP_THEMES, parseAppSpec } from "../spec/appSpec.js";
8
+ import { APP_THEMES, parseAppSpec, resolveFieldCode } from "../spec/appSpec.js";
9
9
  import { isOptionFieldType, SUPPORTED_FIELD_TYPES } from "../spec/fieldSpec.js";
10
10
  import { JSON_SHAPE_INSTRUCTION, REVISE_INSTRUCTION, SYSTEM_PROMPT } from "./prompt.js";
11
11
  /**
@@ -297,9 +297,11 @@ function buildUserMessage(prompt, base) {
297
297
  /**
298
298
  * 直す場合に、モデルが表現できない項目を元の設計から引き継ぐ。
299
299
  *
300
- * `layout` と `icon` は LLM のスキーマに無い (前者は構造化出力の上限、
301
- * 後者は kintone から絵文字として取り出せないため)。
302
- * 引き継がないと、頼んでいないレイアウトの組み直しやアイコンの付け替えが起きる。
300
+ * `layout` `icon` `table` は LLM のスキーマに無い
301
+ * (`layout` と `table` は構造化出力のプロパティ数の上限、
302
+ * `icon` は kintone から絵文字として取り出せないため)。
303
+ * 引き継がないと、頼んでいないレイアウトの組み直し・アイコンの付け替え・
304
+ * **テーブルの解体**が起きる。
303
305
  */
304
306
  function withInheritedFromBase(spec, base) {
305
307
  if (base === undefined)
@@ -312,6 +314,20 @@ function withInheritedFromBase(spec, base) {
312
314
  // 元にアイコンが無いなら、頼まれてもいないのに付けない。
313
315
  if (base.icon === undefined)
314
316
  delete inherited["icon"];
317
+ // テーブルの所属はフィールドコードで引き継ぐ。
318
+ // モデルはテーブルを知らないので、ここで戻さないと列が外へ出てしまう。
319
+ const tables = new Map();
320
+ for (const field of base.fields) {
321
+ if (field.table !== undefined)
322
+ tables.set(resolveFieldCode(field), field.table);
323
+ }
324
+ if (tables.size > 0 && Array.isArray(spec["fields"])) {
325
+ inherited["fields"] = spec["fields"].map((field) => {
326
+ const code = field["code"];
327
+ const table = typeof code === "string" ? tables.get(code) : undefined;
328
+ return table === undefined ? field : { ...field, table };
329
+ });
330
+ }
315
331
  return inherited;
316
332
  }
317
333
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/llm/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/llm/generate.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,9 @@ export const SYSTEM_PROMPT = `あなたは kintone のアプリ設計に詳し
43
43
  - **同じ \`group\` のフィールドは必ず続けて並べる**。離れていると検証で弾かれる。
44
44
  - 1 つの \`group\` は 2〜3 個が目安。多すぎると横一列に収まらない。
45
45
  - まとめる相手がいないフィールドにも、それ単体の \`group\` を付けてよい。
46
- - \`group\` の名前は日本語の短い語で。フォームには表示されないので、業務で通じる言葉にする。
46
+ - テーブル (\`table\`) はここでは作らない。必要なら人が spec に書き足す
47
+ - \`group\` の名前は日本語の短い語で。業務で通じる言葉にする
48
+ (\`layout\` を \`"sections"\` にすると、この名前がそのままフォームのグループ名になる)。
47
49
 
48
50
  ## フィールドコード (code)
49
51
 
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/llm/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;UAanB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAiC1B,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;+DAwBE,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BpC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;4BAmBN,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/llm/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;UAanB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmC1B,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;+DAwBE,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BpC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;4BAmBN,CAAC"}