bluelamp 6.6.13 → 6.6.15

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.
@@ -26,6 +26,7 @@
26
26
  * - `theme` は書かない(1 番は `hasCompletedOnboarding` 単独で消える。見た目の好みを決めない)
27
27
  * - 既存キー・順序を保全する
28
28
  * - 書き込みは一時ファイル → `rename` の原子置換
29
+ * - 読む → 書くの間は Claude Code と同じ lock(`<file>.lock`)を持つ(下の「lock」参照)
29
30
  * - 失敗は握って起動を続ける(最悪ウィザードが出るだけ=現状に戻るだけ)
30
31
  *
31
32
  * ⚠️ 公式にサポートされた仕組みではない(当社が実測で確認した on-disk の振る舞い)。
@@ -68,7 +69,17 @@ export type SeedSkipReason = 'already-seeded' | 'not-an-object' | 'projects-not-
68
69
  export declare function planClaudeJsonSeed(raw: unknown, projectPath: string): SeedPlan;
69
70
  /** `settings.json` に足すべきものを計画する(純関数)。3 番(Bypass 警告)だけを扱う */
70
71
  export declare function planSettingsSeed(raw: unknown): SeedPlan;
72
+ /** 取った lock。`refresh` で stale にならないよう mtime を進め、`release` で手放す */
73
+ export interface SeedLock {
74
+ refresh(): void;
75
+ release(): void;
76
+ }
71
77
  export interface SeedIo {
78
+ /**
79
+ * `<filePath>.lock` を取る。取れなければ例外を投げる。
80
+ * 無い IO(テスト用の疑似 FS)は lock 無しで読み書きする。
81
+ */
82
+ acquireLock?(filePath: string): SeedLock;
72
83
  exists(filePath: string): boolean;
73
84
  /** バイト数。上限判定に使う */
74
85
  size(filePath: string): number;
@@ -77,7 +88,7 @@ export interface SeedIo {
77
88
  writeAtomic(filePath: string, contents: string): void;
78
89
  ensureDir(dirPath: string): void;
79
90
  }
80
- export type SeedFailureReason = 'read-failed' | 'parse-failed' | 'write-failed' | 'too-large';
91
+ export type SeedFailureReason = 'read-failed' | 'parse-failed' | 'write-failed' | 'too-large' | 'lock-failed';
81
92
  export type SeedOutcome = {
82
93
  seeded: true;
83
94
  added: string[];
@@ -107,6 +118,22 @@ export declare function seedSettingsFile(filePath: string, io: SeedIo): SeedOutc
107
118
  * 同一ディレクトリに置くのは、跨ぐと `rename` が EXDEV で落ち原子性を失うため。
108
119
  * これにより **同時に何本 `bluelampN` を起動しても、読み手が半端なファイルを見ることはない**。
109
120
  */
121
+ /**
122
+ * lock を stale と見なすまでの時間。Claude Code が使う proper-lockfile の既定(10 秒)に揃える。
123
+ * 持ち主は stale の半分ごとに mtime を進めるので、生きている lock はこれを超えて古くならない。
124
+ */
125
+ export declare const LOCK_STALE_MS = 10000;
126
+ /** lock を待つ上限。超えたら書かずに諦める(起動を待たせすぎない) */
127
+ export declare const LOCK_WAIT_MS = 10000;
128
+ /**
129
+ * proper-lockfile と同じ規約の同期版(Claude Code と同じ lock を取り合うため):
130
+ * - lock は `<file>.lock` の**ディレクトリ**。`mkdir` が通った者が持ち主
131
+ * - mtime が `LOCK_STALE_MS` より古い lock は、持ち主が死んだとみなして消して取り直す
132
+ */
133
+ export declare function acquireFileLock(filePath: string, options?: {
134
+ staleMs?: number;
135
+ waitMs?: number;
136
+ }): SeedLock;
110
137
  export declare const nodeSeedIo: SeedIo;
111
138
  /**
112
139
  * `.claude.json` の絶対パス。
@@ -1 +1 @@
1
- {"version":3,"file":"claudeOnboardingSeed.d.ts","sourceRoot":"","sources":["../../src/lib/claudeOnboardingSeed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,2BAA2B;AAC3B,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,uBAAuB;AACvB,eAAO,MAAM,SAAS,2BAA2B,CAAC;AAClD,0BAA0B;AAC1B,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,eAAe,GACf,wBAAwB,CAAC;AAW7B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAmD9E;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAOvD;AAMD,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,mBAAmB;IACnB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qDAAqD;IACrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAInF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AA0ElC,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAEjG;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAE1E;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,MAoCxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,oBAAoB,CAK9F"}
1
+ {"version":3,"file":"claudeOnboardingSeed.d.ts","sourceRoot":"","sources":["../../src/lib/claudeOnboardingSeed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAMH,2BAA2B;AAC3B,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,uBAAuB;AACvB,eAAO,MAAM,SAAS,2BAA2B,CAAC;AAClD,0BAA0B;AAC1B,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,eAAe,GACf,wBAAwB,CAAC;AAW7B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAmD9E;AAED,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAOvD;AAMD,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB;;;OAGG;IACH,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,mBAAmB;IACnB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,qDAAqD;IACrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,cAAc,GACd,cAAc,GACd,WAAW,GACX,aAAa,CAAC;AAElB,MAAM,MAAM,WAAW,GACnB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAInF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AA6GlC,mCAAmC;AACnC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAEjG;AAED,kCAAkC;AAClC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAE1E;AAMD;;;;;;GAMG;AACH;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAS,CAAC;AACpC,yCAAyC;AACzC,eAAO,MAAM,YAAY,QAAS,CAAC;AAUnC;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,QAAQ,CA8CV;AAED,eAAO,MAAM,UAAU,EAAE,MAqCxB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAI9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,WAAW,CAAC;IACxB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,oBAAoB,CAK9F"}
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var n=e(t),s=0;s<n.length;s++)"default"!==n[s]&&__createBinding(r,t,n[s]);return __setModuleDefault(r,t),r}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.nodeSeedIo=exports.MAX_SEED_RETRIES=exports.MAX_READ_BYTES=exports.BYPASS_KEY=exports.TRUST_KEY=exports.ONBOARDING_KEY=void 0,exports.planClaudeJsonSeed=planClaudeJsonSeed,exports.planSettingsSeed=planSettingsSeed,exports.seedClaudeJsonFile=seedClaudeJsonFile,exports.seedSettingsFile=seedSettingsFile,exports.defaultClaudeJsonPath=defaultClaudeJsonPath,exports.defaultSettingsPath=defaultSettingsPath,exports.seedClaudeOnboarding=seedClaudeOnboarding;const fs=__importStar(require("node:fs")),os=__importStar(require("node:os")),path=__importStar(require("node:path"));function isPlainObject(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function planClaudeJsonSeed(e,t){if(void 0===e)return{changed:!0,added:[exports.ONBOARDING_KEY,`projects[${t}].${exports.TRUST_KEY}`],next:{[exports.ONBOARDING_KEY]:!0,projects:{[t]:{[exports.TRUST_KEY]:!0}}}};if(!isPlainObject(e))return{changed:!1,added:[],reason:"not-an-object"};const r=[];let n=e;has(e,exports.ONBOARDING_KEY)||(n={...n,[exports.ONBOARDING_KEY]:!0},r.push(exports.ONBOARDING_KEY));const s=e.projects;if(void 0===s||isPlainObject(s)){const e=isPlainObject(s)?s:{},a=e[t];void 0===a?(n={...n,projects:{...e,[t]:{[exports.TRUST_KEY]:!0}}},r.push(`projects[${t}].${exports.TRUST_KEY}`)):isPlainObject(a)&&!has(a,exports.TRUST_KEY)&&(n={...n,projects:{...e,[t]:{...a,[exports.TRUST_KEY]:!0}}},r.push(`projects[${t}].${exports.TRUST_KEY}`))}else if(0===r.length)return{changed:!1,added:[],reason:"projects-not-an-object"};return 0===r.length?{changed:!1,added:[],reason:"already-seeded"}:{changed:!0,next:n,added:r}}function planSettingsSeed(e){return void 0===e?{changed:!0,added:[exports.BYPASS_KEY],next:{[exports.BYPASS_KEY]:!0}}:isPlainObject(e)?has(e,exports.BYPASS_KEY)?{changed:!1,added:[],reason:"already-seeded"}:{changed:!0,added:[exports.BYPASS_KEY],next:{...e,[exports.BYPASS_KEY]:!0}}:{changed:!1,added:[],reason:"not-an-object"}}function seedFile(e,t,r){let n=attemptSeed(e,t,r);if(!n.seeded)return n;for(let s=0;s<exports.MAX_SEED_RETRIES;s+=1){const s=attemptSeed(e,t,r);if(!s.seeded)break;n=s}return n}function attemptSeed(e,t,r){const n=r.exists(e);let s;if(n){let t,n;try{t=r.size(e)}catch(e){return{seeded:!1,reason:"read-failed",detail:messageOf(e)}}if(t>exports.MAX_READ_BYTES)return{seeded:!1,reason:"too-large",detail:`${t} bytes`};try{n=r.read(e)}catch(e){return{seeded:!1,reason:"read-failed",detail:messageOf(e)}}try{s=JSON.parse(n)}catch(e){return{seeded:!1,reason:"parse-failed",detail:messageOf(e)}}}const a=t(s);if(!a.changed||!a.next)return{seeded:!1,reason:a.reason??"already-seeded"};let o;try{o=`${JSON.stringify(a.next,null,2)}\n`,JSON.parse(o)}catch(e){return{seeded:!1,reason:"write-failed",detail:messageOf(e)}}try{r.ensureDir(path.dirname(e)),r.writeAtomic(e,o)}catch(e){return{seeded:!1,reason:"write-failed",detail:messageOf(e)}}return{seeded:!0,added:a.added,created:!n}}function seedClaudeJsonFile(e,t,r){return seedFile(e,e=>planClaudeJsonSeed(e,t),r)}function seedSettingsFile(e,t){return seedFile(e,planSettingsSeed,t)}function defaultClaudeJsonPath(){const e=process.env.CLAUDE_CONFIG_DIR,t=e&&e.length>0?e:os.homedir();return path.join(t,".claude.json")}function defaultSettingsPath(){const e=process.env.CLAUDE_CONFIG_DIR,t=e&&e.length>0?e:path.join(os.homedir(),".claude");return path.join(t,"settings.json")}function seedClaudeOnboarding(e=process.cwd()){return{claudeJson:seedClaudeJsonFile(defaultClaudeJsonPath(),e,exports.nodeSeedIo),settings:seedSettingsFile(defaultSettingsPath(),exports.nodeSeedIo)}}function messageOf(e){return e instanceof Error?e.message:String(e)}exports.ONBOARDING_KEY="hasCompletedOnboarding",exports.TRUST_KEY="hasTrustDialogAccepted",exports.BYPASS_KEY="skipDangerousModePermissionPrompt",exports.MAX_READ_BYTES=67108864,exports.MAX_SEED_RETRIES=2,exports.nodeSeedIo={exists:e=>fs.existsSync(e),size:e=>fs.statSync(e).size,read:e=>fs.readFileSync(e,"utf-8"),ensureDir:e=>{fs.mkdirSync(e,{recursive:!0})},writeAtomic:(e,t)=>{const r=path.dirname(e),n=path.join(r,`.${path.basename(e)}.bluelamp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`);let s=384;try{s=511&fs.statSync(e).mode}catch{}fs.writeFileSync(n,t,{encoding:"utf-8",mode:s});try{fs.renameSync(n,e)}catch(e){try{fs.unlinkSync(n)}catch{}throw e}}};
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,s)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var n=e(t),s=0;s<n.length;s++)"default"!==n[s]&&__createBinding(r,t,n[s]);return __setModuleDefault(r,t),r}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.nodeSeedIo=exports.LOCK_WAIT_MS=exports.LOCK_STALE_MS=exports.MAX_SEED_RETRIES=exports.MAX_READ_BYTES=exports.BYPASS_KEY=exports.TRUST_KEY=exports.ONBOARDING_KEY=void 0,exports.planClaudeJsonSeed=planClaudeJsonSeed,exports.planSettingsSeed=planSettingsSeed,exports.seedClaudeJsonFile=seedClaudeJsonFile,exports.seedSettingsFile=seedSettingsFile,exports.acquireFileLock=acquireFileLock,exports.defaultClaudeJsonPath=defaultClaudeJsonPath,exports.defaultSettingsPath=defaultSettingsPath,exports.seedClaudeOnboarding=seedClaudeOnboarding;const fs=__importStar(require("node:fs")),os=__importStar(require("node:os")),path=__importStar(require("node:path"));function isPlainObject(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function has(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function planClaudeJsonSeed(e,t){if(void 0===e)return{changed:!0,added:[exports.ONBOARDING_KEY,`projects[${t}].${exports.TRUST_KEY}`],next:{[exports.ONBOARDING_KEY]:!0,projects:{[t]:{[exports.TRUST_KEY]:!0}}}};if(!isPlainObject(e))return{changed:!1,added:[],reason:"not-an-object"};const r=[];let n=e;has(e,exports.ONBOARDING_KEY)||(n={...n,[exports.ONBOARDING_KEY]:!0},r.push(exports.ONBOARDING_KEY));const s=e.projects;if(void 0===s||isPlainObject(s)){const e=isPlainObject(s)?s:{},a=e[t];void 0===a?(n={...n,projects:{...e,[t]:{[exports.TRUST_KEY]:!0}}},r.push(`projects[${t}].${exports.TRUST_KEY}`)):isPlainObject(a)&&!has(a,exports.TRUST_KEY)&&(n={...n,projects:{...e,[t]:{...a,[exports.TRUST_KEY]:!0}}},r.push(`projects[${t}].${exports.TRUST_KEY}`))}else if(0===r.length)return{changed:!1,added:[],reason:"projects-not-an-object"};return 0===r.length?{changed:!1,added:[],reason:"already-seeded"}:{changed:!0,next:n,added:r}}function planSettingsSeed(e){return void 0===e?{changed:!0,added:[exports.BYPASS_KEY],next:{[exports.BYPASS_KEY]:!0}}:isPlainObject(e)?has(e,exports.BYPASS_KEY)?{changed:!1,added:[],reason:"already-seeded"}:{changed:!0,added:[exports.BYPASS_KEY],next:{...e,[exports.BYPASS_KEY]:!0}}:{changed:!1,added:[],reason:"not-an-object"}}function seedFile(e,t,r){let n=attemptSeed(e,t,r);if(!n.seeded)return n;for(let s=0;s<exports.MAX_SEED_RETRIES;s+=1){const s=attemptSeed(e,t,r);if(!s.seeded)break;n=s}return n}function attemptSeed(e,t,r){let n;if(r.acquireLock)try{r.ensureDir(path.dirname(e)),n=r.acquireLock(e)}catch(e){return{seeded:!1,reason:"lock-failed",detail:messageOf(e)}}try{return attemptSeedLocked(e,t,r,n)}finally{n?.release()}}function attemptSeedLocked(e,t,r,n){const s=r.exists(e);let a;if(s){let t,n;try{t=r.size(e)}catch(e){return{seeded:!1,reason:"read-failed",detail:messageOf(e)}}if(t>exports.MAX_READ_BYTES)return{seeded:!1,reason:"too-large",detail:`${t} bytes`};try{n=r.read(e)}catch(e){return{seeded:!1,reason:"read-failed",detail:messageOf(e)}}try{a=JSON.parse(n)}catch(e){return{seeded:!1,reason:"parse-failed",detail:messageOf(e)}}}const o=t(a);if(!o.changed||!o.next)return{seeded:!1,reason:o.reason??"already-seeded"};let d;try{d=`${JSON.stringify(o.next,null,2)}\n`,JSON.parse(d)}catch(e){return{seeded:!1,reason:"write-failed",detail:messageOf(e)}}try{n?.refresh(),r.ensureDir(path.dirname(e)),r.writeAtomic(e,d)}catch(e){return{seeded:!1,reason:"write-failed",detail:messageOf(e)}}return{seeded:!0,added:o.added,created:!s}}function seedClaudeJsonFile(e,t,r){return seedFile(e,e=>planClaudeJsonSeed(e,t),r)}function seedSettingsFile(e,t){return seedFile(e,planSettingsSeed,t)}function sleepSync(e){Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,e)}function lockPathOf(e){return`${e}.lock`}function acquireFileLock(e,t={}){const r=t.staleMs??exports.LOCK_STALE_MS,n=Date.now()+(t.waitMs??exports.LOCK_WAIT_MS),s=lockPathOf(e);let a=10;for(;;){try{fs.mkdirSync(s);let e=fs.statSync(s).mtimeMs;return{refresh:()=>{const t=new Date;fs.utimesSync(s,t,t),e=fs.statSync(s).mtimeMs},release:()=>{try{fs.statSync(s).mtimeMs===e&&fs.rmdirSync(s)}catch{}}}}catch(e){if("EEXIST"!==e.code)throw e}try{if(fs.statSync(s).mtimeMs<Date.now()-r){fs.rmdirSync(s);continue}}catch(e){if("ENOENT"===e.code)continue;throw e}if(Date.now()>=n)throw new Error(`lock が空かない: ${s}`);sleepSync(a),a=Math.min(2*a,200)}}function defaultClaudeJsonPath(){const e=process.env.CLAUDE_CONFIG_DIR,t=e&&e.length>0?e:os.homedir();return path.join(t,".claude.json")}function defaultSettingsPath(){const e=process.env.CLAUDE_CONFIG_DIR,t=e&&e.length>0?e:path.join(os.homedir(),".claude");return path.join(t,"settings.json")}function seedClaudeOnboarding(e=process.cwd()){return{claudeJson:seedClaudeJsonFile(defaultClaudeJsonPath(),e,exports.nodeSeedIo),settings:seedSettingsFile(defaultSettingsPath(),exports.nodeSeedIo)}}function messageOf(e){return e instanceof Error?e.message:String(e)}exports.ONBOARDING_KEY="hasCompletedOnboarding",exports.TRUST_KEY="hasTrustDialogAccepted",exports.BYPASS_KEY="skipDangerousModePermissionPrompt",exports.MAX_READ_BYTES=67108864,exports.MAX_SEED_RETRIES=2,exports.LOCK_STALE_MS=1e4,exports.LOCK_WAIT_MS=1e4,exports.nodeSeedIo={acquireLock:e=>acquireFileLock(e),exists:e=>fs.existsSync(e),size:e=>fs.statSync(e).size,read:e=>fs.readFileSync(e,"utf-8"),ensureDir:e=>{fs.mkdirSync(e,{recursive:!0})},writeAtomic:(e,t)=>{const r=path.dirname(e),n=path.join(r,`.${path.basename(e)}.bluelamp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}.tmp`);let s=384;try{s=511&fs.statSync(e).mode}catch{}fs.writeFileSync(n,t,{encoding:"utf-8",mode:s});try{fs.renameSync(n,e)}catch(e){try{fs.unlinkSync(n)}catch{}throw e}}};
@@ -1 +1 @@
1
- {"version":3,"file":"claudeOnboardingSeed.js","sourceRoot":"","sources":["../../src/lib/claudeOnboardingSeed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeOnboardingSeed.js","sourceRoot":"","sources":["../../src/lib/claudeOnboardingSeed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * 起動子が Claude Code へ渡す最初の指示(initialPrompt)を組み立てる(箱 n=2055・純関数)。
3
+ *
4
+ * initialPrompt は端末に出る文字ではなく、**会話の本文**として描かれる。ここに ANSI の色コード
5
+ * (`\x1b[34m` 等)を入れると、色にならずに `[34m` `[0m` の文字列として会員の最初の画面に出る
6
+ * (2026-05-26 の移植 05b00578 から全版で出ていた)。⇒ 本文には ESC を 1 文字も入れない。
7
+ * 端末に console.log で出す行の色は別物(端末が色として解釈する)なので、ここでは扱わない。
8
+ *
9
+ * 呼び手から来る文字列(i18n の文言・--task-file の本文)に色コードが混じっていても、
10
+ * 同じ理由で本文へは持ち込まない(除いてから組み立てる)。
11
+ */
12
+ export interface InitialPromptInput {
13
+ /** 1 行目(例: 「BlueLamp に接続しました」) */
14
+ authActivated: string;
15
+ /** 箱のロゴ(i18n の brandTitle・build-brand が白ラベル化する) */
16
+ brandTitle: string;
17
+ /** 箱の 2 行目(例: 「さあ始めましょう」) */
18
+ title: string;
19
+ /** 入力欄の案内(板 #528 F5) */
20
+ inputHint: string;
21
+ /** 最初の指示(挨拶の指示・task の本文・取得失敗時の案内) */
22
+ startInstruction: string;
23
+ }
24
+ export declare function stripAnsi(text: string): string;
25
+ /** 等幅での表示幅(全角=2)。「さあ始めましょう」を length で数えると右の罫線が 8 桁ずれる。 */
26
+ export declare function displayWidth(text: string): number;
27
+ export declare function buildInitialPrompt(input: InitialPromptInput): string;
28
+ //# sourceMappingURL=initialPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialPrompt.d.ts","sourceRoot":"","sources":["../../src/lib/initialPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAMD,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAejD;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAoBpE"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.stripAnsi=stripAnsi,exports.displayWidth=displayWidth,exports.buildInitialPrompt=buildInitialPrompt;const ANSI_SEQUENCE=/\x1b(?:\[[0-?]*[ -/]*[@-~]|[@-Z\\-_])?/g;function stripAnsi(t){return t.replace(ANSI_SEQUENCE,"")}const BOX_INNER=65,INDENT=" ".repeat(20);function displayWidth(t){let i=0;for(const n of t){const t=n.codePointAt(0)??0;i+=t>=4352&&t<=4447||t>=11904&&t<=42191||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65072&&t<=65103||t>=65280&&t<=65376||t>=65504&&t<=65510?2:1}return i}function boxLine(t){return`│${t}${" ".repeat(Math.max(0,BOX_INNER-displayWidth(t)))}│`}function buildInitialPrompt(t){const i=stripAnsi(t.brandTitle),n=stripAnsi(t.title),e="─".repeat(BOX_INNER),r=[`╭${e}╮`,boxLine(""),boxLine(`${INDENT}${i}`),boxLine(`${INDENT}${n}`),boxLine(""),`╰${e}╯`].join("\n");return`> ${stripAnsi(t.authActivated)}\n\n${r}\n\n${stripAnsi(t.inputHint)}\n\n${stripAnsi(t.startInstruction)}`}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialPrompt.js","sourceRoot":"","sources":["../../src/lib/initialPrompt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAkBH,8BAEC;AAOD,oCAeC;AAMD,gDAoBC;AArDD,4DAA4D;AAC5D,MAAM,aAAa,GAAG,yCAAyC,CAAC;AAEhE,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,wBAAwB;AACxB,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE9B,0DAA0D;AAC1D,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GACR,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;YAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC;QACjC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,IAAI,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACrF,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAyB;IAC1D,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG;QACV,IAAI,MAAM,GAAG;QACb,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,MAAM,GAAG;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;;EAE1C,GAAG;;EAEH,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;;EAE1B,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluelamp",
3
- "version": "6.6.13",
3
+ "version": "6.6.15",
4
4
  "description": "BlueLamp CLI: 旧 bluelampportal/mcp の auth / 200+ bluelamp1-N binary / postinstall scripts を TypeScript 化して monorepo に統合したパッケージ。",
5
5
  "keywords": [
6
6
  "bluelamp",
@@ -359,7 +359,6 @@
359
359
  "bluelamp297": "./dist/bin/bluelamp297.mjs",
360
360
  "bluelamp298": "./dist/bin/bluelamp298.mjs",
361
361
  "bluelamp299": "./dist/bin/bluelamp299.mjs",
362
- "bluelamp300": "./dist/bin/bluelamp300.mjs",
363
- "bluelamp-secret": "./dist/bin/bluelamp-secret.mjs"
362
+ "bluelamp300": "./dist/bin/bluelamp300.mjs"
364
363
  }
365
364
  }
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{spawn}from"node:child_process";import{constants as osConstants}from"node:os";import secretExecModule from"../lib/secretExec.js";import tokenManagerModule from"../auth/TokenManager.js";const{runSecretExec:runSecretExec}=secretExecModule,{TokenManager:TokenManager}=tokenManagerModule,FORWARDED=["SIGINT","SIGTERM","SIGHUP"];runSecretExec(process.argv.slice(2),{env:process.env,loadToken:()=>TokenManager.loadTokenStringSync(),fetch:(e,r)=>globalThis.fetch(e,r),spawn:(e,r,s)=>spawn(e,r,s),stderr:e=>process.stderr.write(e),signalNumbers:osConstants.signals,onParentSignal:e=>{const r=FORWARDED.map(r=>{const s=()=>{"SIGINT"!==r&&e(r)};return process.on(r,s),[r,s]});return()=>r.forEach(([e,r])=>process.off(e,r))}}).then(e=>process.exit(e),()=>{process.stderr.write("bluelamp-secret: 想定外の失敗で止まりました\n"),process.exit(1)});
@@ -1,86 +0,0 @@
1
- /**
2
- * `bluelamp-secret exec` — 金庫の値を**子プロセスの環境変数にだけ**入れてコマンドを走らせる(箱 n=2018 設計④)。
3
- *
4
- * 🕳 塞いでいる穴: MCP の `get_secret` は値を返り値にしていたため、値が会話の転写に残った。
5
- * その口を閉じると、値を Bash で使っていた手順(21 日で 235 回)が壊れる。⇒ 値を「見せずに使う」口をここに置く。
6
- *
7
- * 🔑 値の通り道は「金庫の HTTP 応答 → 子の env」の 1 本だけ。
8
- * ⛔ argv・標準出力・標準エラー・ログ・ファイル・エラーの文言に値を出さない。
9
- * ⛔ HTTP の本文・fetch の例外をそのまま出さない(本文は値を、例外は要求を引用しうる)。
10
- * 失敗は「どの ENV 名・どの金庫の名前が・なぜ」だけを返す。
11
- * 🔑 使用の記録: `GET /vault/:service` は backend 側で監査 `get`(誰が・どの秘密を)を 1 行書く。
12
- *
13
- * 判定と組み立ては純粋関数(unit で直接撃つ)、網と子プロセスは `runSecretExec` の deps に寄せる。
14
- */
15
- /** ENV 名として受ける形。⛔ これ以外(小文字・記号・先頭数字)は受けない */
16
- export declare const ENV_NAME_PATTERN: RegExp;
17
- /** 既定のポータル API(lib/mcp-server/portal-api-client.cjs・TokenManager と同じ値) */
18
- export declare const DEFAULT_PORTAL_API_BASE_URL = "https://api.motohi.jp/api/bluelamp";
19
- export declare const USAGE: string;
20
- export interface SecretBinding {
21
- env: string;
22
- name: string;
23
- }
24
- export type ParseResult = {
25
- ok: true;
26
- bindings: SecretBinding[];
27
- command: string;
28
- args: string[];
29
- } | {
30
- ok: false;
31
- help: boolean;
32
- error: string;
33
- };
34
- /** 引数を解析する(`process.argv.slice(2)` を受ける)。値はここに来ない=金庫の名前だけ */
35
- export declare function parseExecArgs(argv: readonly string[]): ParseResult;
36
- /** 基底 URL(BLUELAMP_PORTAL_API_BASE_URL > PORTAL_URL > 既定。portal-api-client.cjs と同じ順) */
37
- export declare function resolvePortalApiBaseUrl(env: Readonly<Record<string, string | undefined>>): string;
38
- /**
39
- * 金庫の 1 件を引く URL。
40
- * 🔑 vault の sub-app は内部で `/api/vault/...` に経路を切るが、bluelamp module ごと `/api/bluelamp` に
41
- * 載っているので外から見える経路は `<base>/vault/...`(base は /api/bluelamp まで含む)。
42
- * 🔬 実測(無認証): `/api/bluelamp/api/vault/x` → 404/`/api/bluelamp/vault/x` → 401。
43
- * mcp-list/bluelamp/playwright/src/fillSecret.ts の VAULT_FILL_PATH と同じ結論。
44
- */
45
- export declare function buildVaultUrl(baseUrl: string, name: string): string;
46
- /** 子の env を合成する(親を書き換えない) */
47
- export declare function composeChildEnv(parentEnv: Readonly<Record<string, string | undefined>>, values: Readonly<Record<string, string>>): Record<string, string>;
48
- /** 金庫の応答本文から値を取り出す。形が違えば null(⛔ 本文を呼び手へ返さない) */
49
- export declare function extractSecretValue(body: unknown): string | null;
50
- /** HTTP の状態を理由の文言にする(⛔ 本文は使わない) */
51
- export declare function describeVaultStatus(status: number): string;
52
- /** 子の終わり方を終了コードにする(シグナルは 128+番号=シェルと同じ) */
53
- export declare function exitCodeOf(code: number | null, signal: string | null, signalNumbers: Readonly<Record<string, number>>): number;
54
- interface FetchResponseLike {
55
- ok: boolean;
56
- status: number;
57
- json(): Promise<unknown>;
58
- }
59
- interface ChildLike {
60
- on(event: 'exit', cb: (code: number | null, signal: string | null) => void): unknown;
61
- on(event: 'error', cb: (err: {
62
- code?: string;
63
- }) => void): unknown;
64
- kill(signal?: string): unknown;
65
- }
66
- export interface SecretExecDeps {
67
- env: Readonly<Record<string, string | undefined>>;
68
- loadToken: () => string | null;
69
- fetch: (url: string, init: {
70
- method: string;
71
- headers: Record<string, string>;
72
- }) => Promise<FetchResponseLike>;
73
- spawn: (command: string, args: string[], options: {
74
- stdio: 'inherit';
75
- shell: false;
76
- env: Record<string, string>;
77
- }) => ChildLike;
78
- stderr: (text: string) => void;
79
- signalNumbers: Readonly<Record<string, number>>;
80
- /** 親が受けたシグナルを子へ回す口(無ければ回さない)。戻り値は解除関数 */
81
- onParentSignal?: (forward: (signal: string) => void) => () => void;
82
- }
83
- /** 実行する。戻り値は終了コード */
84
- export declare function runSecretExec(argv: readonly string[], deps: SecretExecDeps): Promise<number>;
85
- export {};
86
- //# sourceMappingURL=secretExec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secretExec.d.ts","sourceRoot":"","sources":["../../src/lib/secretExec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- "use strict";function parseExecArgs(e){if(0===e.length||"-h"===e[0]||"--help"===e[0]||"help"===e[0])return{ok:!1,help:!0,error:""};if("exec"!==e[0])return{ok:!1,help:!1,error:"不明な操作です(受けるのは exec だけ)"};const r=e.indexOf("--");if(-1===r)return{ok:!1,help:!1,error:"`--` の後に実行するコマンドを書いてください"};const t=e.slice(1,r),o=e[r+1];if(void 0===o||""===o)return{ok:!1,help:!1,error:"`--` の後に実行するコマンドがありません"};if(0===t.length)return{ok:!1,help:!1,error:"<ENV名>=<金庫の名前> を 1 つ以上書いてください"};const n=[],s=new Set;for(const e of t){const r=e.indexOf("=");if(r<=0)return{ok:!1,help:!1,error:`<ENV名>=<金庫の名前> の形ではない引数があります(${n.length+1} 番目)`};const t=e.slice(0,r),o=e.slice(r+1);if(!exports.ENV_NAME_PATTERN.test(t))return{ok:!1,help:!1,error:`ENV 名は ^[A-Z_][A-Z0-9_]*$ の形だけ受けます(${n.length+1} 番目)`};if(""===o)return{ok:!1,help:!1,error:`${t}: 金庫の名前が空です`};if("."===o||".."===o)return{ok:!1,help:!1,error:`${t}: 金庫の名前に . / .. は使えません`};if(s.has(t))return{ok:!1,help:!1,error:`${t}: 同じ ENV 名が 2 回あります`};s.add(t),n.push({env:t,name:o})}return{ok:!0,bindings:n,command:o,args:e.slice(r+2)}}function resolvePortalApiBaseUrl(e){return(e.BLUELAMP_PORTAL_API_BASE_URL||e.PORTAL_URL||exports.DEFAULT_PORTAL_API_BASE_URL).replace(/\/+$/,"")}function buildVaultUrl(e,r){return`${e}/vault/${encodeURIComponent(r)}`}function composeChildEnv(e,r){const t={};for(const[r,o]of Object.entries(e))"string"==typeof o&&(t[r]=o);for(const[e,o]of Object.entries(r))t[e]=o;return t}function extractSecretValue(e){if(!e||"object"!=typeof e)return null;const r=e;return!0===r.success&&r.data&&"object"==typeof r.data&&"string"==typeof r.data.secret?r.data.secret:null}function describeVaultStatus(e){return 401===e?"未ログインかトークンが無効です(bluelamp1 などでログインし直してください)":403===e?"この秘密へのアクセス権がありません":404===e?"金庫に見つかりません":`金庫が HTTP ${e} を返しました`}function exitCodeOf(e,r,t){return"number"==typeof e?e:r&&"number"==typeof t[r]?128+t[r]:1}Object.defineProperty(exports,"__esModule",{value:!0}),exports.USAGE=exports.DEFAULT_PORTAL_API_BASE_URL=exports.ENV_NAME_PATTERN=void 0,exports.parseExecArgs=parseExecArgs,exports.resolvePortalApiBaseUrl=resolvePortalApiBaseUrl,exports.buildVaultUrl=buildVaultUrl,exports.composeChildEnv=composeChildEnv,exports.extractSecretValue=extractSecretValue,exports.describeVaultStatus=describeVaultStatus,exports.exitCodeOf=exitCodeOf,exports.runSecretExec=runSecretExec,exports.ENV_NAME_PATTERN=/^[A-Z_][A-Z0-9_]*$/,exports.DEFAULT_PORTAL_API_BASE_URL="https://api.motohi.jp/api/bluelamp",exports.USAGE='使い方: bluelamp-secret exec <ENV名>=<金庫の名前> [<ENV名>=<金庫の名前> …] -- <コマンド> [引数…]\n 金庫の値を子プロセスの環境変数にだけ入れて <コマンド> を実行し、その終了コードで終わります。\n 値は画面・引数・ログに出ません。シェルの展開が要るときは -- sh -c \'psql "$PGURL" -c "select 1"\' のように渡します。\n';const PREFIX="bluelamp-secret: ";async function runSecretExec(e,r){const t=parseExecArgs(e);if(!t.ok)return t.help?(r.stderr(exports.USAGE),0===e.length?2:0):(r.stderr(`${PREFIX}${t.error}\n${exports.USAGE}`),2);const o=r.loadToken();if(!o)return r.stderr(`${PREFIX}未ログインです(bluelamp1 などでログインしてから撃ってください)\n`),1;const n=resolvePortalApiBaseUrl(r.env),s={};for(const{env:e,name:c}of t.bindings){let t,l;try{t=await r.fetch(buildVaultUrl(n,c),{method:"GET",headers:{"X-CLI-Token":o,Accept:"application/json","User-Agent":"bluelamp-secret/1"}})}catch{return r.stderr(`${PREFIX}${e}=${c}: ポータルに届きませんでした\n`),1}if(!t.ok)return r.stderr(`${PREFIX}${e}=${c}: ${describeVaultStatus(t.status)}\n`),1;try{l=await t.json()}catch{return r.stderr(`${PREFIX}${e}=${c}: 金庫の応答を読めませんでした\n`),1}const a=extractSecretValue(l);if(null===a)return r.stderr(`${PREFIX}${e}=${c}: 金庫の応答に値がありませんでした\n`),1;s[e]=a}const c=composeChildEnv(r.env,s);return new Promise(e=>{let o=!1,n=()=>{};const s=r=>{o||(o=!0,n(),e(r))};let l;try{l=r.spawn(t.command,t.args,{stdio:"inherit",shell:!1,env:c})}catch(e){const o=e?.code;return r.stderr(`${PREFIX}コマンドを起動できませんでした: ${t.command}${o?`(${o})`:""}\n`),void s(127)}r.onParentSignal&&(n=r.onParentSignal(e=>{try{l.kill(e)}catch{}})),l.on("error",e=>{r.stderr(`${PREFIX}コマンドを起動できませんでした: ${t.command}${e?.code?`(${e.code})`:""}\n`),s(127)}),l.on("exit",(e,t)=>s(exitCodeOf(e,t,r.signalNumbers)))})}
@@ -1 +0,0 @@
1
- {"version":3,"file":"secretExec.js","sourceRoot":"","sources":["../../src/lib/secretExec.ts"],"names":[],"mappings":"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"}