superceo 0.3.3 → 0.3.5
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/README.md +2 -2
- package/dist/index.js +91 -51
- package/dist/index.js.map +3 -3
- package/dist/migrations/0000_mature_masked_marvel.sql +208 -0
- package/dist/migrations/0001_fast_northstar.sql +87 -0
- package/dist/migrations/0002_big_zaladane.sql +1 -0
- package/dist/migrations/0003_shallow_quentin_quire.sql +5 -0
- package/dist/migrations/0004_issue_identifiers.sql +28 -0
- package/dist/migrations/0005_chief_luke_cage.sql +19 -0
- package/dist/migrations/0006_overjoyed_mister_sinister.sql +36 -0
- package/dist/migrations/0007_new_quentin_quire.sql +20 -0
- package/dist/migrations/0008_amused_zzzax.sql +1 -0
- package/dist/migrations/0009_fast_jackal.sql +36 -0
- package/dist/migrations/0010_stale_justin_hammer.sql +37 -0
- package/dist/migrations/0011_windy_corsair.sql +18 -0
- package/dist/migrations/0012_perpetual_ser_duncan.sql +2 -0
- package/dist/migrations/0013_dashing_wasp.sql +4 -0
- package/dist/migrations/0014_many_mikhail_rasputin.sql +135 -0
- package/dist/migrations/0015_project_color_archived.sql +2 -0
- package/dist/migrations/0016_agent_icon.sql +1 -0
- package/dist/migrations/0017_tiresome_gabe_jones.sql +51 -0
- package/dist/migrations/0018_flat_sleepwalker.sql +26 -0
- package/dist/migrations/0019_public_victor_mancha.sql +18 -0
- package/dist/migrations/0020_white_anita_blake.sql +1 -0
- package/dist/migrations/0021_chief_vindicator.sql +1 -0
- package/dist/migrations/0022_company_brand_color.sql +1 -0
- package/dist/migrations/0023_fair_lethal_legion.sql +3 -0
- package/dist/migrations/0024_far_beast.sql +2 -0
- package/dist/migrations/0025_nasty_salo.sql +15 -0
- package/dist/migrations/0026_lying_pete_wisdom.sql +39 -0
- package/dist/migrations/0027_tranquil_tenebrous.sql +2 -0
- package/dist/migrations/0028_harsh_goliath.sql +54 -0
- package/dist/migrations/0029_plugin_tables.sql +177 -0
- package/dist/migrations/0030_rich_magneto.sql +12 -0
- package/dist/migrations/0031_zippy_magma.sql +51 -0
- package/dist/migrations/0032_pretty_doctor_octopus.sql +102 -0
- package/dist/migrations/0033_shiny_black_tarantula.sql +2 -0
- package/dist/migrations/0034_fat_dormammu.sql +2 -0
- package/dist/migrations/0035_marvelous_satana.sql +91 -0
- package/dist/migrations/0036_cheerful_nitro.sql +9 -0
- package/dist/migrations/0037_friendly_eddie_brock.sql +29 -0
- package/dist/migrations/0038_careless_iron_monger.sql +5 -0
- package/dist/migrations/0039_fat_magneto.sql +161 -0
- package/dist/migrations/0040_eager_shotgun.sql +5 -0
- package/dist/migrations/0041_curly_maria_hill.sql +1 -0
- package/dist/migrations/0042_spotty_the_renegades.sql +26 -0
- package/dist/migrations/0043_reflective_captain_universe.sql +6 -0
- package/dist/migrations/0044_illegal_toad.sql +56 -0
- package/dist/migrations/0045_workable_shockwave.sql +17 -0
- package/dist/migrations/0046_smooth_sentinels.sql +11 -0
- package/dist/migrations/0047_overjoyed_groot.sql +102 -0
- package/dist/migrations/0048_flashy_marrow.sql +1 -0
- package/dist/migrations/0049_flawless_abomination.sql +21 -0
- package/dist/migrations/0050_stiff_luckman.sql +1 -0
- package/dist/migrations/0051_young_korg.sql +5 -0
- package/dist/migrations/0052_mushy_trauma.sql +26 -0
- package/dist/migrations/0053_sharp_wild_child.sql +18 -0
- package/dist/migrations/0054_draft_routines.sql +2 -0
- package/dist/migrations/0055_faithful_doctor_octopus.sql +48 -0
- package/dist/migrations/0056_equal_sabretooth.sql +34 -0
- package/dist/migrations/0057_ordinary_khan.sql +5 -0
- package/dist/migrations/0058_sad_wolf_cub.sql +2 -0
- package/dist/migrations/0059_rich_jackpot.sql +4 -0
- package/dist/migrations/0060_orange_nightshade.sql +60 -0
- package/dist/migrations/0061_parallel_puma.sql +1 -0
- package/dist/migrations/0062_goofy_lethal_legion.sql +26 -0
- package/dist/migrations/0063_luxuriant_doctor_spectrum.sql +23 -0
- package/dist/migrations/0064_lead_platform_user.sql +2 -0
- package/dist/migrations/0065_wild_next_avengers.sql +14 -0
- package/dist/migrations/0066_late_stark_industries.sql +5 -0
- package/dist/migrations/0067_instance_backup_settings.sql +1 -0
- package/dist/migrations/0068_tiresome_ma_gnuci.sql +1 -0
- package/dist/migrations/0069_lazy_zaladane.sql +106 -0
- package/dist/migrations/0070_lame_wendigo.sql +1 -0
- package/dist/migrations/0071_content_analytics.sql +71 -0
- package/dist/migrations/0072_quota_gate_feature_scope.sql +3 -0
- package/dist/migrations/0073_instance_update_settings.sql +1 -0
- package/dist/migrations/0074_local_tools_config.sql +1 -0
- package/dist/migrations/0075_liveness_recovery_dedupe.sql +15 -0
- package/dist/migrations/0076_active_run_output_watchdog.sql +91 -0
- package/dist/migrations/0077_issue_tree_holds.sql +107 -0
- package/dist/migrations/0078_issue_reference_mentions.sql +50 -0
- package/dist/migrations/0079_subscription_quota_lane.sql +4 -0
- package/dist/migrations/0080_lead_product_user.sql +3 -0
- package/dist/migrations/0081_lead_product_user_split_x.sql +8 -0
- package/dist/migrations/0082_agent_image_url.sql +1 -0
- package/dist/migrations/0083_chat_sessions_target_agent.sql +2 -0
- package/dist/migrations/0084_document_folders.sql +22 -0
- package/dist/migrations/0085_eager_mulholland_black.sql +4 -0
- package/dist/migrations/meta/0000_snapshot.json +1743 -0
- package/dist/migrations/meta/0001_snapshot.json +2441 -0
- package/dist/migrations/meta/0002_snapshot.json +2454 -0
- package/dist/migrations/meta/0003_snapshot.json +2502 -0
- package/dist/migrations/meta/0005_snapshot.json +2719 -0
- package/dist/migrations/meta/0006_snapshot.json +3048 -0
- package/dist/migrations/meta/0007_snapshot.json +3258 -0
- package/dist/migrations/meta/0008_snapshot.json +3264 -0
- package/dist/migrations/meta/0009_snapshot.json +3587 -0
- package/dist/migrations/meta/0010_snapshot.json +3929 -0
- package/dist/migrations/meta/0011_snapshot.json +4068 -0
- package/dist/migrations/meta/0012_snapshot.json +4087 -0
- package/dist/migrations/meta/0013_snapshot.json +4118 -0
- package/dist/migrations/meta/0014_snapshot.json +5187 -0
- package/dist/migrations/meta/0017_snapshot.json +5215 -0
- package/dist/migrations/meta/0018_snapshot.json +5450 -0
- package/dist/migrations/meta/0019_snapshot.json +5603 -0
- package/dist/migrations/meta/0020_snapshot.json +5603 -0
- package/dist/migrations/meta/0021_snapshot.json +5609 -0
- package/dist/migrations/meta/0023_snapshot.json +5633 -0
- package/dist/migrations/meta/0024_snapshot.json +5693 -0
- package/dist/migrations/meta/0025_snapshot.json +5849 -0
- package/dist/migrations/meta/0027_snapshot.json +6205 -0
- package/dist/migrations/meta/0028_snapshot.json +6710 -0
- package/dist/migrations/meta/0029_snapshot.json +7899 -0
- package/dist/migrations/meta/0030_snapshot.json +8003 -0
- package/dist/migrations/meta/0031_snapshot.json +7242 -0
- package/dist/migrations/meta/0032_snapshot.json +7733 -0
- package/dist/migrations/meta/0033_snapshot.json +9038 -0
- package/dist/migrations/meta/0034_snapshot.json +9039 -0
- package/dist/migrations/meta/0035_snapshot.json +9959 -0
- package/dist/migrations/meta/0036_snapshot.json +10023 -0
- package/dist/migrations/meta/0037_snapshot.json +10263 -0
- package/dist/migrations/meta/0038_snapshot.json +11350 -0
- package/dist/migrations/meta/0039_snapshot.json +10308 -0
- package/dist/migrations/meta/0040_snapshot.json +10481 -0
- package/dist/migrations/meta/0041_snapshot.json +11393 -0
- package/dist/migrations/meta/0044_snapshot.json +11701 -0
- package/dist/migrations/meta/0045_snapshot.json +11857 -0
- package/dist/migrations/meta/0046_snapshot.json +11870 -0
- package/dist/migrations/meta/0047_snapshot.json +12539 -0
- package/dist/migrations/meta/0048_snapshot.json +12546 -0
- package/dist/migrations/meta/0049_snapshot.json +12766 -0
- package/dist/migrations/meta/0050_snapshot.json +12772 -0
- package/dist/migrations/meta/0051_snapshot.json +12836 -0
- package/dist/migrations/meta/0052_snapshot.json +13057 -0
- package/dist/migrations/meta/0053_snapshot.json +12979 -0
- package/dist/migrations/meta/0055_snapshot.json +13586 -0
- package/dist/migrations/meta/0056_snapshot.json +13868 -0
- package/dist/migrations/meta/0057_snapshot.json +13906 -0
- package/dist/migrations/meta/0058_snapshot.json +13918 -0
- package/dist/migrations/meta/0059_snapshot.json +13942 -0
- package/dist/migrations/meta/0060_snapshot.json +14509 -0
- package/dist/migrations/meta/0061_snapshot.json +14515 -0
- package/dist/migrations/meta/0062_snapshot.json +14717 -0
- package/dist/migrations/meta/0063_snapshot.json +14941 -0
- package/dist/migrations/meta/0065_snapshot.json +15081 -0
- package/dist/migrations/meta/0066_snapshot.json +15112 -0
- package/dist/migrations/meta/0067_snapshot.json +15119 -0
- package/dist/migrations/meta/0068_snapshot.json +15125 -0
- package/dist/migrations/meta/0069_snapshot.json +16110 -0
- package/dist/migrations/meta/0070_snapshot.json +16116 -0
- package/dist/migrations/meta/0073_snapshot.json +16584 -0
- package/dist/migrations/meta/0079_snapshot.json +17847 -0
- package/dist/migrations/meta/0080_snapshot.json +17853 -0
- package/dist/migrations/meta/0081_snapshot.json +17853 -0
- package/dist/migrations/meta/0085_snapshot.json +18068 -0
- package/dist/migrations/meta/_journal.json +608 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -11,8 +11,8 @@ Opens `http://localhost:3100` — hire agents, give them goals, watch them work.
|
|
|
11
11
|
|
|
12
12
|
## Documentation
|
|
13
13
|
|
|
14
|
-
- GitHub repo: https://github.com/
|
|
15
|
-
- Full docs: https://github.com/
|
|
14
|
+
- GitHub repo: https://github.com/superceoai/superceo
|
|
15
|
+
- Full docs: https://github.com/superceoai/superceo/blob/master/doc/FOR-DEVELOPERS.md
|
|
16
16
|
|
|
17
17
|
## License
|
|
18
18
|
|
package/dist/index.js
CHANGED
|
@@ -8823,27 +8823,36 @@ function getCliBrandPack(env = process.env) {
|
|
|
8823
8823
|
const path83 = nonEmpty(env.PAPERCLIP_BRAND_PACK_PATH);
|
|
8824
8824
|
if (path83) {
|
|
8825
8825
|
const parsed = JSON.parse(fs6.readFileSync(path83, "utf8"));
|
|
8826
|
+
const name2 = typeof parsed.name === "string" && parsed.name.trim() ? parsed.name.trim() : DEFAULT_BRAND.name;
|
|
8826
8827
|
const branded2 = {
|
|
8827
|
-
name:
|
|
8828
|
-
tagline: typeof parsed.tagline === "string" && parsed.tagline.trim() ? parsed.tagline.trim() : DEFAULT_BRAND.tagline
|
|
8828
|
+
name: name2,
|
|
8829
|
+
tagline: typeof parsed.tagline === "string" && parsed.tagline.trim() ? parsed.tagline.trim() : DEFAULT_BRAND.tagline,
|
|
8830
|
+
command: typeof parsed.command === "string" && parsed.command.trim() ? parsed.command.trim() : deriveCommand(name2)
|
|
8829
8831
|
};
|
|
8830
8832
|
if (env === process.env) cachedBrand = branded2;
|
|
8831
8833
|
return branded2;
|
|
8832
8834
|
}
|
|
8835
|
+
const name = nonEmpty(env.PAPERCLIP_BRAND_NAME) ?? DEFAULT_BRAND.name;
|
|
8833
8836
|
const branded = {
|
|
8834
|
-
name
|
|
8835
|
-
tagline: nonEmpty(env.PAPERCLIP_BRAND_TAGLINE) ?? DEFAULT_BRAND.tagline
|
|
8837
|
+
name,
|
|
8838
|
+
tagline: nonEmpty(env.PAPERCLIP_BRAND_TAGLINE) ?? DEFAULT_BRAND.tagline,
|
|
8839
|
+
command: nonEmpty(env.PAPERCLIP_BRAND_COMMAND) ?? deriveCommand(name)
|
|
8836
8840
|
};
|
|
8837
8841
|
if (env === process.env) cachedBrand = branded;
|
|
8838
8842
|
return branded;
|
|
8839
8843
|
}
|
|
8844
|
+
function deriveCommand(name) {
|
|
8845
|
+
if (name === DEFAULT_BRAND.name) return DEFAULT_BRAND.command;
|
|
8846
|
+
return name.toLowerCase().replace(/[^a-z0-9]+/g, "");
|
|
8847
|
+
}
|
|
8840
8848
|
var DEFAULT_BRAND, cachedBrand;
|
|
8841
8849
|
var init_brand = __esm({
|
|
8842
8850
|
"../cli/src/utils/brand.ts"() {
|
|
8843
8851
|
"use strict";
|
|
8844
8852
|
DEFAULT_BRAND = {
|
|
8845
8853
|
name: "Paperclip",
|
|
8846
|
-
tagline: "Open-source orchestration for zero-human companies"
|
|
8854
|
+
tagline: "Open-source orchestration for zero-human companies",
|
|
8855
|
+
command: "paperclipai"
|
|
8847
8856
|
};
|
|
8848
8857
|
cachedBrand = null;
|
|
8849
8858
|
}
|
|
@@ -8853,9 +8862,10 @@ var init_brand = __esm({
|
|
|
8853
8862
|
import pc2 from "picocolors";
|
|
8854
8863
|
function printPaperclipCliBanner() {
|
|
8855
8864
|
const brand2 = getCliBrandPack();
|
|
8865
|
+
const art = brand2.name.toLowerCase() === "superceo" ? SUPERCEO_ART : PAPERCLIP_ART;
|
|
8856
8866
|
const lines = [
|
|
8857
8867
|
"",
|
|
8858
|
-
...
|
|
8868
|
+
...art.map((line) => pc2.cyan(line)),
|
|
8859
8869
|
pc2.blue(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"),
|
|
8860
8870
|
pc2.bold(pc2.white(` ${brand2.tagline}`)),
|
|
8861
8871
|
pc2.dim(` ${brand2.name} CLI`),
|
|
@@ -8863,7 +8873,7 @@ function printPaperclipCliBanner() {
|
|
|
8863
8873
|
];
|
|
8864
8874
|
console.log(lines.join("\n"));
|
|
8865
8875
|
}
|
|
8866
|
-
var PAPERCLIP_ART;
|
|
8876
|
+
var PAPERCLIP_ART, SUPERCEO_ART;
|
|
8867
8877
|
var init_banner = __esm({
|
|
8868
8878
|
"../cli/src/utils/banner.ts"() {
|
|
8869
8879
|
"use strict";
|
|
@@ -8876,6 +8886,14 @@ var init_banner = __esm({
|
|
|
8876
8886
|
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551 ",
|
|
8877
8887
|
"\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D\u255A\u2550\u255D "
|
|
8878
8888
|
];
|
|
8889
|
+
SUPERCEO_ART = [
|
|
8890
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
|
|
8891
|
+
"\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557",
|
|
8892
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551",
|
|
8893
|
+
"\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551",
|
|
8894
|
+
"\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
|
|
8895
|
+
"\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D "
|
|
8896
|
+
];
|
|
8879
8897
|
}
|
|
8880
8898
|
});
|
|
8881
8899
|
|
|
@@ -9149,13 +9167,14 @@ var init_agent_jwt_secret_check = __esm({
|
|
|
9149
9167
|
// ../cli/src/checks/config-check.ts
|
|
9150
9168
|
function configCheck(configPath) {
|
|
9151
9169
|
const filePath = resolveConfigPath(configPath);
|
|
9170
|
+
const { command } = getCliBrandPack();
|
|
9152
9171
|
if (!configExists(configPath)) {
|
|
9153
9172
|
return {
|
|
9154
9173
|
name: "Config file",
|
|
9155
9174
|
status: "fail",
|
|
9156
9175
|
message: `Config file not found at ${filePath}`,
|
|
9157
9176
|
canRepair: false,
|
|
9158
|
-
repairHint:
|
|
9177
|
+
repairHint: `Run \`${command} onboard\` to create one`
|
|
9159
9178
|
};
|
|
9160
9179
|
}
|
|
9161
9180
|
try {
|
|
@@ -9171,7 +9190,7 @@ function configCheck(configPath) {
|
|
|
9171
9190
|
status: "fail",
|
|
9172
9191
|
message: `Invalid config: ${err instanceof Error ? err.message : String(err)}`,
|
|
9173
9192
|
canRepair: false,
|
|
9174
|
-
repairHint:
|
|
9193
|
+
repairHint: `Run \`${command} configure --section database\` (or \`${command} onboard\` to recreate)`
|
|
9175
9194
|
};
|
|
9176
9195
|
}
|
|
9177
9196
|
}
|
|
@@ -9179,6 +9198,7 @@ var init_config_check = __esm({
|
|
|
9179
9198
|
"../cli/src/checks/config-check.ts"() {
|
|
9180
9199
|
"use strict";
|
|
9181
9200
|
init_store();
|
|
9201
|
+
init_brand();
|
|
9182
9202
|
}
|
|
9183
9203
|
});
|
|
9184
9204
|
|
|
@@ -9198,7 +9218,7 @@ function deploymentAuthCheck(config) {
|
|
|
9198
9218
|
status: "fail",
|
|
9199
9219
|
message: `local_trusted requires loopback host binding (found ${config.server.host})`,
|
|
9200
9220
|
canRepair: false,
|
|
9201
|
-
repairHint:
|
|
9221
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section server\` and set host to 127.0.0.1`
|
|
9202
9222
|
};
|
|
9203
9223
|
}
|
|
9204
9224
|
return {
|
|
@@ -9223,7 +9243,7 @@ function deploymentAuthCheck(config) {
|
|
|
9223
9243
|
status: "fail",
|
|
9224
9244
|
message: "auth.baseUrlMode=explicit requires auth.publicBaseUrl",
|
|
9225
9245
|
canRepair: false,
|
|
9226
|
-
repairHint:
|
|
9246
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section server\` and provide a base URL`
|
|
9227
9247
|
};
|
|
9228
9248
|
}
|
|
9229
9249
|
if (exposure === "public") {
|
|
@@ -9233,7 +9253,7 @@ function deploymentAuthCheck(config) {
|
|
|
9233
9253
|
status: "fail",
|
|
9234
9254
|
message: "authenticated/public requires explicit auth.publicBaseUrl",
|
|
9235
9255
|
canRepair: false,
|
|
9236
|
-
repairHint:
|
|
9256
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section server\` and select public exposure`
|
|
9237
9257
|
};
|
|
9238
9258
|
}
|
|
9239
9259
|
try {
|
|
@@ -9253,7 +9273,7 @@ function deploymentAuthCheck(config) {
|
|
|
9253
9273
|
status: "fail",
|
|
9254
9274
|
message: "auth.publicBaseUrl is not a valid URL",
|
|
9255
9275
|
canRepair: false,
|
|
9256
|
-
repairHint:
|
|
9276
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section server\` and provide a valid URL`
|
|
9257
9277
|
};
|
|
9258
9278
|
}
|
|
9259
9279
|
}
|
|
@@ -9266,6 +9286,7 @@ function deploymentAuthCheck(config) {
|
|
|
9266
9286
|
var init_deployment_auth_check = __esm({
|
|
9267
9287
|
"../cli/src/checks/deployment-auth-check.ts"() {
|
|
9268
9288
|
"use strict";
|
|
9289
|
+
init_brand();
|
|
9269
9290
|
}
|
|
9270
9291
|
});
|
|
9271
9292
|
|
|
@@ -9287,7 +9308,7 @@ async function databaseCheck(config, configPath) {
|
|
|
9287
9308
|
status: "fail",
|
|
9288
9309
|
message: "PostgreSQL mode selected but no connection string configured",
|
|
9289
9310
|
canRepair: false,
|
|
9290
|
-
repairHint:
|
|
9311
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section database\``
|
|
9291
9312
|
};
|
|
9292
9313
|
}
|
|
9293
9314
|
try {
|
|
@@ -9326,12 +9347,13 @@ async function databaseCheck(config, configPath) {
|
|
|
9326
9347
|
status: "fail",
|
|
9327
9348
|
message: `Unknown database mode: ${String(config.database.mode)}`,
|
|
9328
9349
|
canRepair: false,
|
|
9329
|
-
repairHint:
|
|
9350
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section database\``
|
|
9330
9351
|
};
|
|
9331
9352
|
}
|
|
9332
9353
|
var init_database_check = __esm({
|
|
9333
9354
|
"../cli/src/checks/database-check.ts"() {
|
|
9334
9355
|
"use strict";
|
|
9356
|
+
init_brand();
|
|
9335
9357
|
init_path_resolver2();
|
|
9336
9358
|
}
|
|
9337
9359
|
});
|
|
@@ -9376,7 +9398,7 @@ async function llmCheck(config) {
|
|
|
9376
9398
|
status: "fail",
|
|
9377
9399
|
message: "Claude API key is invalid (401)",
|
|
9378
9400
|
canRepair: false,
|
|
9379
|
-
repairHint:
|
|
9401
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section llm\``
|
|
9380
9402
|
};
|
|
9381
9403
|
}
|
|
9382
9404
|
return {
|
|
@@ -9397,7 +9419,7 @@ async function llmCheck(config) {
|
|
|
9397
9419
|
status: "fail",
|
|
9398
9420
|
message: "OpenAI API key is invalid (401)",
|
|
9399
9421
|
canRepair: false,
|
|
9400
|
-
repairHint:
|
|
9422
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section llm\``
|
|
9401
9423
|
};
|
|
9402
9424
|
}
|
|
9403
9425
|
return {
|
|
@@ -9417,6 +9439,7 @@ async function llmCheck(config) {
|
|
|
9417
9439
|
var init_llm_check = __esm({
|
|
9418
9440
|
"../cli/src/checks/llm-check.ts"() {
|
|
9419
9441
|
"use strict";
|
|
9442
|
+
init_brand();
|
|
9420
9443
|
}
|
|
9421
9444
|
});
|
|
9422
9445
|
|
|
@@ -9621,7 +9644,7 @@ function secretsCheck(config, configPath) {
|
|
|
9621
9644
|
status: "fail",
|
|
9622
9645
|
message: `${provider} is configured, but this build only supports local_encrypted`,
|
|
9623
9646
|
canRepair: false,
|
|
9624
|
-
repairHint:
|
|
9647
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section secrets\` and set provider to local_encrypted`
|
|
9625
9648
|
};
|
|
9626
9649
|
}
|
|
9627
9650
|
const envMasterKey = process.env.PAPERCLIP_SECRETS_MASTER_KEY;
|
|
@@ -9703,6 +9726,7 @@ function secretsCheck(config, configPath) {
|
|
|
9703
9726
|
var init_secrets_check = __esm({
|
|
9704
9727
|
"../cli/src/checks/secrets-check.ts"() {
|
|
9705
9728
|
"use strict";
|
|
9729
|
+
init_brand();
|
|
9706
9730
|
init_path_resolver2();
|
|
9707
9731
|
}
|
|
9708
9732
|
});
|
|
@@ -9740,7 +9764,7 @@ function storageCheck(config, configPath) {
|
|
|
9740
9764
|
status: "fail",
|
|
9741
9765
|
message: "S3 storage requires non-empty bucket and region",
|
|
9742
9766
|
canRepair: false,
|
|
9743
|
-
repairHint:
|
|
9767
|
+
repairHint: `Run \`${getCliBrandPack().command} configure --section storage\``
|
|
9744
9768
|
};
|
|
9745
9769
|
}
|
|
9746
9770
|
return {
|
|
@@ -9754,6 +9778,7 @@ function storageCheck(config, configPath) {
|
|
|
9754
9778
|
var init_storage_check = __esm({
|
|
9755
9779
|
"../cli/src/checks/storage-check.ts"() {
|
|
9756
9780
|
"use strict";
|
|
9781
|
+
init_brand();
|
|
9757
9782
|
init_path_resolver2();
|
|
9758
9783
|
}
|
|
9759
9784
|
});
|
|
@@ -9780,7 +9805,8 @@ import * as p8 from "@clack/prompts";
|
|
|
9780
9805
|
import pc3 from "picocolors";
|
|
9781
9806
|
async function doctor(opts) {
|
|
9782
9807
|
printPaperclipCliBanner();
|
|
9783
|
-
|
|
9808
|
+
const brand2 = getCliBrandPack();
|
|
9809
|
+
p8.intro(pc3.bgCyan(pc3.black(` ${brand2.command} doctor `)));
|
|
9784
9810
|
const configPath = resolveConfigPath(opts.config);
|
|
9785
9811
|
loadPaperclipEnvFile(configPath);
|
|
9786
9812
|
const results = [];
|
|
@@ -9799,7 +9825,7 @@ async function doctor(opts) {
|
|
|
9799
9825
|
status: "fail",
|
|
9800
9826
|
message: `Could not read config: ${err instanceof Error ? err.message : String(err)}`,
|
|
9801
9827
|
canRepair: false,
|
|
9802
|
-
repairHint:
|
|
9828
|
+
repairHint: `Run \`${brand2.command} configure --section database\` or \`${brand2.command} onboard\``
|
|
9803
9829
|
};
|
|
9804
9830
|
results.push(readResult);
|
|
9805
9831
|
printResult(readResult);
|
|
@@ -9920,6 +9946,7 @@ var init_doctor = __esm({
|
|
|
9920
9946
|
init_checks();
|
|
9921
9947
|
init_env();
|
|
9922
9948
|
init_banner();
|
|
9949
|
+
init_brand();
|
|
9923
9950
|
STATUS_ICON = {
|
|
9924
9951
|
pass: pc3.green("\u2713"),
|
|
9925
9952
|
warn: pc3.yellow("!"),
|
|
@@ -29793,7 +29820,7 @@ function documentService(db) {
|
|
|
29793
29820
|
createdAt: documentRevisions.createdAt
|
|
29794
29821
|
}).from(documentRevisions).where(eq15(documentRevisions.documentId, documentId)).orderBy(desc6(documentRevisions.revisionNumber));
|
|
29795
29822
|
},
|
|
29796
|
-
listCompanyDocuments: async (companyId) => {
|
|
29823
|
+
listCompanyDocuments: async (companyId, opts) => {
|
|
29797
29824
|
const rows = await db.select({
|
|
29798
29825
|
id: documents.id,
|
|
29799
29826
|
companyId: documents.companyId,
|
|
@@ -29822,7 +29849,12 @@ function documentService(db) {
|
|
|
29822
29849
|
or3(isNull5(issueDocuments.id), isNull5(issues.hiddenAt))
|
|
29823
29850
|
)
|
|
29824
29851
|
).orderBy(desc6(documents.updatedAt)).limit(200);
|
|
29825
|
-
|
|
29852
|
+
const filtered = opts?.kind ? rows.filter((row2) => {
|
|
29853
|
+
if (!row2.latestBody) return false;
|
|
29854
|
+
const { frontmatter } = parseFrontmatterMarkdown(row2.latestBody);
|
|
29855
|
+
return frontmatter.kind === opts.kind;
|
|
29856
|
+
}) : rows;
|
|
29857
|
+
return filtered.map((row2) => ({
|
|
29826
29858
|
id: row2.id,
|
|
29827
29859
|
companyId: row2.companyId,
|
|
29828
29860
|
title: row2.title,
|
|
@@ -30314,6 +30346,7 @@ var init_documents2 = __esm({
|
|
|
30314
30346
|
init_dist2();
|
|
30315
30347
|
init_dist();
|
|
30316
30348
|
init_errors();
|
|
30349
|
+
init_company_skills2();
|
|
30317
30350
|
issueDocumentSelect = {
|
|
30318
30351
|
id: documents.id,
|
|
30319
30352
|
companyId: documents.companyId,
|
|
@@ -61488,7 +61521,8 @@ function documentRoutes(db) {
|
|
|
61488
61521
|
router.get("/companies/:companyId/documents", async (req, res) => {
|
|
61489
61522
|
const companyId = req.params.companyId;
|
|
61490
61523
|
assertCompanyAccess(req, companyId);
|
|
61491
|
-
const
|
|
61524
|
+
const kind = typeof req.query.kind === "string" ? req.query.kind : void 0;
|
|
61525
|
+
const docs = await svc.listCompanyDocuments(companyId, { kind });
|
|
61492
61526
|
res.json(docs);
|
|
61493
61527
|
});
|
|
61494
61528
|
router.get("/companies/:companyId/document-folders", async (req, res) => {
|
|
@@ -82275,14 +82309,15 @@ async function runCommand(opts) {
|
|
|
82275
82309
|
const configPath = resolveConfigPath(opts.config);
|
|
82276
82310
|
process.env.PAPERCLIP_CONFIG = configPath;
|
|
82277
82311
|
loadPaperclipEnvFile(configPath);
|
|
82278
|
-
|
|
82312
|
+
const brand2 = getCliBrandPack();
|
|
82313
|
+
p9.intro(pc4.bgCyan(pc4.black(` ${brand2.command} run `)));
|
|
82279
82314
|
p9.log.message(pc4.dim(`Home: ${paths.homeDir}`));
|
|
82280
82315
|
p9.log.message(pc4.dim(`Instance: ${paths.instanceId}`));
|
|
82281
82316
|
p9.log.message(pc4.dim(`Config: ${configPath}`));
|
|
82282
82317
|
if (!configExists(configPath)) {
|
|
82283
82318
|
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
82284
82319
|
p9.log.error("No config found and terminal is non-interactive.");
|
|
82285
|
-
p9.log.message(`Run ${pc4.cyan(
|
|
82320
|
+
p9.log.message(`Run ${pc4.cyan(`${brand2.command} onboard`)} once, then retry ${pc4.cyan(`${brand2.command} run`)}.`);
|
|
82286
82321
|
process.exit(1);
|
|
82287
82322
|
}
|
|
82288
82323
|
p9.log.step("No config found. Starting onboarding...");
|
|
@@ -82538,7 +82573,7 @@ function canCreateBootstrapInviteImmediately(config) {
|
|
|
82538
82573
|
async function onboard(opts) {
|
|
82539
82574
|
const brand2 = getCliBrandPack();
|
|
82540
82575
|
printPaperclipCliBanner();
|
|
82541
|
-
p10.intro(pc5.bgCyan(pc5.black(
|
|
82576
|
+
p10.intro(pc5.bgCyan(pc5.black(` ${brand2.command} onboard `)));
|
|
82542
82577
|
const configPath = resolveConfigPath(opts.config);
|
|
82543
82578
|
const instance = describeLocalInstancePaths(resolvePaperclipInstanceId());
|
|
82544
82579
|
p10.log.message(
|
|
@@ -82564,7 +82599,7 @@ ${err instanceof Error ? err.message : String(err)}`
|
|
|
82564
82599
|
p10.log.message(
|
|
82565
82600
|
pc5.dim(`Existing ${brand2.name} install detected; keeping the current configuration unchanged.`)
|
|
82566
82601
|
);
|
|
82567
|
-
p10.log.message(pc5.dim(`Use ${pc5.cyan(
|
|
82602
|
+
p10.log.message(pc5.dim(`Use ${pc5.cyan(`${brand2.command} configure`)} if you want to change settings.`));
|
|
82568
82603
|
const jwtSecret2 = ensureAgentJwtSecret(configPath);
|
|
82569
82604
|
const envFilePath2 = resolveAgentJwtEnvFile(configPath);
|
|
82570
82605
|
if (jwtSecret2.created) {
|
|
@@ -82597,9 +82632,9 @@ ${err instanceof Error ? err.message : String(err)}`
|
|
|
82597
82632
|
);
|
|
82598
82633
|
p10.note(
|
|
82599
82634
|
[
|
|
82600
|
-
`Run: ${pc5.cyan(
|
|
82601
|
-
`Reconfigure later: ${pc5.cyan(
|
|
82602
|
-
`Diagnose setup: ${pc5.cyan(
|
|
82635
|
+
`Run: ${pc5.cyan(`${brand2.command} run`)}`,
|
|
82636
|
+
`Reconfigure later: ${pc5.cyan(`${brand2.command} configure`)}`,
|
|
82637
|
+
`Diagnose setup: ${pc5.cyan(`${brand2.command} doctor`)}`
|
|
82603
82638
|
].join("\n"),
|
|
82604
82639
|
"Next commands"
|
|
82605
82640
|
);
|
|
@@ -82672,7 +82707,7 @@ ${err instanceof Error ? err.message : String(err)}`
|
|
|
82672
82707
|
await db.execute("SELECT 1");
|
|
82673
82708
|
s.stop("Database connection successful");
|
|
82674
82709
|
} catch {
|
|
82675
|
-
s.stop(pc5.yellow(
|
|
82710
|
+
s.stop(pc5.yellow(`Could not connect to database \u2014 you can fix this later with \`${brand2.command} doctor\``));
|
|
82676
82711
|
}
|
|
82677
82712
|
}
|
|
82678
82713
|
p10.log.step(pc5.bold("LLM Provider"));
|
|
@@ -82804,9 +82839,9 @@ ${err instanceof Error ? err.message : String(err)}`
|
|
|
82804
82839
|
);
|
|
82805
82840
|
p10.note(
|
|
82806
82841
|
[
|
|
82807
|
-
`Run: ${pc5.cyan(
|
|
82808
|
-
`Reconfigure later: ${pc5.cyan(
|
|
82809
|
-
`Diagnose setup: ${pc5.cyan(
|
|
82842
|
+
`Run: ${pc5.cyan(`${brand2.command} run`)}`,
|
|
82843
|
+
`Reconfigure later: ${pc5.cyan(`${brand2.command} configure`)}`,
|
|
82844
|
+
`Diagnose setup: ${pc5.cyan(`${brand2.command} doctor`)}`
|
|
82810
82845
|
].join("\n"),
|
|
82811
82846
|
"Next commands"
|
|
82812
82847
|
);
|
|
@@ -82834,8 +82869,8 @@ ${err instanceof Error ? err.message : String(err)}`
|
|
|
82834
82869
|
p10.log.info(
|
|
82835
82870
|
[
|
|
82836
82871
|
"Bootstrap CEO invite will be created after the server starts.",
|
|
82837
|
-
`Next: ${pc5.cyan(
|
|
82838
|
-
`Then: ${pc5.cyan(
|
|
82872
|
+
`Next: ${pc5.cyan(`${brand2.command} run`)}`,
|
|
82873
|
+
`Then: ${pc5.cyan(`${brand2.command} auth bootstrap-ceo`)}`
|
|
82839
82874
|
].join("\n")
|
|
82840
82875
|
);
|
|
82841
82876
|
}
|
|
@@ -83222,10 +83257,11 @@ function defaultConfig() {
|
|
|
83222
83257
|
}
|
|
83223
83258
|
async function configure(opts) {
|
|
83224
83259
|
printPaperclipCliBanner();
|
|
83225
|
-
|
|
83260
|
+
const brand2 = getCliBrandPack();
|
|
83261
|
+
p12.intro(pc7.bgCyan(pc7.black(` ${brand2.command} configure `)));
|
|
83226
83262
|
const configPath = resolveConfigPath(opts.config);
|
|
83227
83263
|
if (!configExists(opts.config)) {
|
|
83228
|
-
p12.log.error(
|
|
83264
|
+
p12.log.error(`No config file found. Run \`${brand2.command} onboard\` first.`);
|
|
83229
83265
|
p12.outro("");
|
|
83230
83266
|
return;
|
|
83231
83267
|
}
|
|
@@ -83343,6 +83379,7 @@ var init_configure = __esm({
|
|
|
83343
83379
|
init_server();
|
|
83344
83380
|
init_home();
|
|
83345
83381
|
init_banner();
|
|
83382
|
+
init_brand();
|
|
83346
83383
|
SECTION_LABELS = {
|
|
83347
83384
|
llm: "LLM Provider",
|
|
83348
83385
|
database: "Database",
|
|
@@ -84982,8 +85019,9 @@ async function toApiError(response) {
|
|
|
84982
85019
|
}
|
|
84983
85020
|
function buildConnectionErrorMessage(input) {
|
|
84984
85021
|
const healthUrl = buildHealthCheckUrl(input.url);
|
|
85022
|
+
const brand2 = getCliBrandPack();
|
|
84985
85023
|
const lines = [
|
|
84986
|
-
|
|
85024
|
+
`Could not reach the ${brand2.name} API.`,
|
|
84987
85025
|
"",
|
|
84988
85026
|
`Request: ${input.method} ${input.url}`
|
|
84989
85027
|
];
|
|
@@ -84992,12 +85030,12 @@ function buildConnectionErrorMessage(input) {
|
|
|
84992
85030
|
}
|
|
84993
85031
|
lines.push(
|
|
84994
85032
|
"",
|
|
84995
|
-
|
|
85033
|
+
`This usually means the ${brand2.name} server is not running, the configured URL is wrong, or the request is being blocked before it reaches ${brand2.name}.`,
|
|
84996
85034
|
"",
|
|
84997
85035
|
"Try:",
|
|
84998
|
-
|
|
85036
|
+
`- Start ${brand2.name} with \`pnpm dev\` or \`pnpm ${brand2.command} run\`.`,
|
|
84999
85037
|
`- Verify the server is reachable with \`curl ${healthUrl}\`.`,
|
|
85000
|
-
`- If
|
|
85038
|
+
`- If ${brand2.name} is running elsewhere, pass \`--api-base ${input.apiBase.replace(/\/+$/, "")}\` or set \`PAPERCLIP_API_URL\`.`
|
|
85001
85039
|
);
|
|
85002
85040
|
return lines.join("\n");
|
|
85003
85041
|
}
|
|
@@ -85032,6 +85070,7 @@ var ApiRequestError, ApiConnectionError, PaperclipApiClient;
|
|
|
85032
85070
|
var init_http3 = __esm({
|
|
85033
85071
|
"../cli/src/client/http.ts"() {
|
|
85034
85072
|
"use strict";
|
|
85073
|
+
init_brand();
|
|
85035
85074
|
ApiRequestError = class extends Error {
|
|
85036
85075
|
status;
|
|
85037
85076
|
details;
|
|
@@ -85169,7 +85208,7 @@ function resolveCommandContext(options2, opts) {
|
|
|
85169
85208
|
const companyId = options2.companyId?.trim() || process.env.PAPERCLIP_COMPANY_ID?.trim() || profile.companyId;
|
|
85170
85209
|
if (opts?.requireCompany && !companyId) {
|
|
85171
85210
|
throw new Error(
|
|
85172
|
-
|
|
85211
|
+
`Company ID is required. Pass --company-id, set PAPERCLIP_COMPANY_ID, or set context profile companyId via \`${getCliBrandPack().command} context set\`.`
|
|
85173
85212
|
);
|
|
85174
85213
|
}
|
|
85175
85214
|
const api = new PaperclipApiClient({
|
|
@@ -89911,12 +89950,12 @@ async function runWorktreeInit(opts) {
|
|
|
89911
89950
|
}
|
|
89912
89951
|
async function worktreeInitCommand(opts) {
|
|
89913
89952
|
printPaperclipCliBanner();
|
|
89914
|
-
p16.intro(pc24.bgCyan(pc24.black(
|
|
89953
|
+
p16.intro(pc24.bgCyan(pc24.black(` ${getCliBrandPack().command} worktree init `)));
|
|
89915
89954
|
await runWorktreeInit(opts);
|
|
89916
89955
|
}
|
|
89917
89956
|
async function worktreeMakeCommand(nameArg, opts) {
|
|
89918
89957
|
printPaperclipCliBanner();
|
|
89919
|
-
p16.intro(pc24.bgCyan(pc24.black(
|
|
89958
|
+
p16.intro(pc24.bgCyan(pc24.black(` ${getCliBrandPack().command} worktree:make `)));
|
|
89920
89959
|
const name = resolveWorktreeMakeName(nameArg);
|
|
89921
89960
|
const startPoint = resolveWorktreeStartPoint(opts.startPoint);
|
|
89922
89961
|
const sourceCwd = process.cwd();
|
|
@@ -90072,7 +90111,7 @@ function worktreePathHasUncommittedChanges(worktreePath) {
|
|
|
90072
90111
|
}
|
|
90073
90112
|
async function worktreeCleanupCommand(nameArg, opts) {
|
|
90074
90113
|
printPaperclipCliBanner();
|
|
90075
|
-
p16.intro(pc24.bgCyan(pc24.black(
|
|
90114
|
+
p16.intro(pc24.bgCyan(pc24.black(` ${getCliBrandPack().command} worktree:cleanup `)));
|
|
90076
90115
|
const name = resolveWorktreeMakeName(nameArg);
|
|
90077
90116
|
const sourceCwd = process.cwd();
|
|
90078
90117
|
const targetPath = resolveWorktreeMakeTargetPath(name);
|
|
@@ -90697,7 +90736,7 @@ async function promptForSourceEndpoint(excludeWorktreePath) {
|
|
|
90697
90736
|
hint: `${choice.worktree}${choice.isCurrent ? " (current)" : ""}`
|
|
90698
90737
|
}));
|
|
90699
90738
|
if (choices.length === 0) {
|
|
90700
|
-
throw new Error(
|
|
90739
|
+
throw new Error(`No worktrees were found. Run \`${getCliBrandPack().command} worktree:list\` to inspect the repo worktrees.`);
|
|
90701
90740
|
}
|
|
90702
90741
|
const selection = await p16.select({
|
|
90703
90742
|
message: "Choose the source worktree to import from",
|
|
@@ -91095,7 +91134,7 @@ async function worktreeMergeHistoryCommand(sourceArg, opts) {
|
|
|
91095
91134
|
}
|
|
91096
91135
|
async function worktreeReseedCommand(opts) {
|
|
91097
91136
|
printPaperclipCliBanner();
|
|
91098
|
-
p16.intro(pc24.bgCyan(pc24.black(
|
|
91137
|
+
p16.intro(pc24.bgCyan(pc24.black(` ${getCliBrandPack().command} worktree reseed `)));
|
|
91099
91138
|
const seedMode = opts.seedMode ?? "full";
|
|
91100
91139
|
if (!isWorktreeSeedMode(seedMode)) {
|
|
91101
91140
|
throw new Error(`Unsupported seed mode "${seedMode}". Expected one of: minimal, full.`);
|
|
@@ -91177,6 +91216,7 @@ var WORKTREE_NAME_PREFIX, dynamicImport;
|
|
|
91177
91216
|
var init_worktree = __esm({
|
|
91178
91217
|
"../cli/src/commands/worktree.ts"() {
|
|
91179
91218
|
"use strict";
|
|
91219
|
+
init_brand();
|
|
91180
91220
|
init_dist2();
|
|
91181
91221
|
init_env();
|
|
91182
91222
|
init_home();
|
|
@@ -91533,7 +91573,7 @@ var init_src2 = __esm({
|
|
|
91533
91573
|
program = new Command();
|
|
91534
91574
|
brand = getCliBrandPack();
|
|
91535
91575
|
DATA_DIR_OPTION_HELP = `${brand.name} data directory root (isolates state from ~/.paperclip)`;
|
|
91536
|
-
program.name(
|
|
91576
|
+
program.name(brand.command).description(`${brand.name} CLI \u2014 setup, diagnose, and configure your instance`).version(cliVersion);
|
|
91537
91577
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
91538
91578
|
const options2 = actionCommand.optsWithGlobals();
|
|
91539
91579
|
const optionNames = new Set(actionCommand.options.map((option) => option.attributeName()));
|
|
@@ -91581,6 +91621,6 @@ var init_src2 = __esm({
|
|
|
91581
91621
|
|
|
91582
91622
|
// src/index.ts
|
|
91583
91623
|
process.env.PAPERCLIP_BRAND_NAME = "SuperCEO";
|
|
91584
|
-
process.env.PAPERCLIP_BRAND_HOMEPAGE_URL = "https://github.com/
|
|
91624
|
+
process.env.PAPERCLIP_BRAND_HOMEPAGE_URL = "https://github.com/superceoai/superceo";
|
|
91585
91625
|
await Promise.resolve().then(() => (init_src2(), src_exports2));
|
|
91586
91626
|
//# sourceMappingURL=index.js.map
|