@paradigma-inc/flywheel 0.1.107 → 0.1.108
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/package.json +1 -1
- package/skills/flywheel-llm-proof-paper/scripts/__pycache__/check_paper.cpython-311.pyc +0 -0
- package/src/mcp-writer.mjs +7 -19
- package/src/runtime/runtime-config.mjs +3 -3
- package/src/runtime/vendor/flywheel-cli-dist/generatedProductTelemetryContract.d.ts +2 -2
- package/src/runtime/vendor/flywheel-cli-dist/generatedProductTelemetryContract.js +7 -1
- package/src/runtime/vendor/flywheel-cli-dist/generatedProductTelemetryContract.js.map +1 -1
- package/src/runtime/vendor/manifest.json +1 -1
- package/src/secure-write.mjs +43 -0
- package/src/setup/io/patchers/json.mjs +5 -0
- package/src/setup/io/patchers/yaml.mjs +5 -0
package/package.json
CHANGED
|
Binary file
|
package/src/mcp-writer.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { access,
|
|
2
|
-
import path from "node:path";
|
|
1
|
+
import { access, readFile } from "node:fs/promises";
|
|
3
2
|
import { load as loadYaml, dump as dumpYaml } from "js-yaml";
|
|
3
|
+
import { secureFileMode, writeSecureFile } from "./secure-write.mjs";
|
|
4
4
|
|
|
5
5
|
function stripJsonComments(text) {
|
|
6
6
|
let result = "";
|
|
@@ -117,11 +117,7 @@ export async function readJsonConfig(filePath) {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
export async function writeJsonConfig(filePath, config) {
|
|
120
|
-
await
|
|
121
|
-
await writeFile(filePath, `${JSON.stringify(config, null, 2)}\n`, {
|
|
122
|
-
encoding: "utf8",
|
|
123
|
-
mode: 0o600,
|
|
124
|
-
});
|
|
120
|
+
await writeSecureFile(filePath, `${JSON.stringify(config, null, 2)}\n`);
|
|
125
121
|
}
|
|
126
122
|
|
|
127
123
|
export async function readYamlConfig(filePath) {
|
|
@@ -146,11 +142,7 @@ export async function readYamlConfig(filePath) {
|
|
|
146
142
|
}
|
|
147
143
|
|
|
148
144
|
export async function writeYamlConfig(filePath, config) {
|
|
149
|
-
await
|
|
150
|
-
await writeFile(filePath, dumpYaml(config, { noRefs: true }), {
|
|
151
|
-
encoding: "utf8",
|
|
152
|
-
mode: 0o600,
|
|
153
|
-
});
|
|
145
|
+
await writeSecureFile(filePath, dumpYaml(config, { noRefs: true }));
|
|
154
146
|
}
|
|
155
147
|
|
|
156
148
|
export async function resolveMcpPath(candidates) {
|
|
@@ -479,6 +471,7 @@ export async function appendTomlServer(
|
|
|
479
471
|
// header when the caller explicitly toggled auth mode via `--oauth` or
|
|
480
472
|
// `--api-key`.
|
|
481
473
|
if (!enforceAuthMode || existingEntry.authMode === newAuthMode) {
|
|
474
|
+
await secureFileMode(filePath);
|
|
482
475
|
return { alreadyExists: true };
|
|
483
476
|
}
|
|
484
477
|
}
|
|
@@ -515,11 +508,7 @@ export async function appendTomlServer(
|
|
|
515
508
|
: existing.length > 0
|
|
516
509
|
? "\n"
|
|
517
510
|
: "";
|
|
518
|
-
await
|
|
519
|
-
await writeFile(filePath, `${existing}${separator}${block}`, {
|
|
520
|
-
encoding: "utf8",
|
|
521
|
-
mode: 0o600,
|
|
522
|
-
});
|
|
511
|
+
await writeSecureFile(filePath, `${existing}${separator}${block}`);
|
|
523
512
|
return { alreadyExists: false };
|
|
524
513
|
}
|
|
525
514
|
|
|
@@ -582,7 +571,6 @@ export async function removeCodexTomlServer({ filePath, serverName }) {
|
|
|
582
571
|
});
|
|
583
572
|
if (!removed) return { changed: false };
|
|
584
573
|
|
|
585
|
-
await
|
|
586
|
-
await writeFile(filePath, stripped, { encoding: "utf8", mode: 0o600 });
|
|
574
|
+
await writeSecureFile(filePath, stripped);
|
|
587
575
|
return { changed: true };
|
|
588
576
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { writeSecureFile } from "../secure-write.mjs";
|
|
4
5
|
|
|
5
6
|
const RUNTIME_BASE_URL_SUFFIX = "/api";
|
|
6
7
|
|
|
@@ -76,9 +77,8 @@ export async function writeRuntimeConfig({
|
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
const baseUrl = normalizeRuntimeBaseUrl(origin);
|
|
79
|
-
await mkdir(path.dirname(configPath), { recursive: true });
|
|
80
80
|
const existing = await readExistingRuntimeConfig(configPath);
|
|
81
81
|
const merged = { ...existing, baseUrl, apiKey: trimmedKey };
|
|
82
|
-
await
|
|
82
|
+
await writeSecureFile(configPath, `${JSON.stringify(merged, null, 2)}\n`);
|
|
83
83
|
return { configPath, baseUrl };
|
|
84
84
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const PRODUCT_TELEMETRY_CONTRACT_VERSION: "2026-05-18.2";
|
|
2
|
-
export declare const PRODUCT_TELEMETRY_EVENT_NAMES: readonly ["api_client_operation_recorded", "api_route_behavior_recorded", "cli_command_behavior_recorded", "credits_checkout_started", "mcp_tool_behavior_recorded", "message_sent", "node_created", "node_link_disabled", "node_link_enabled", "node_public_disabled", "node_public_enabled", "product_demand_signal_recorded", "server_workflow_behavior_recorded", "subscription_checkout_started", "user_session_started", "web_app_opened", "web_artifact_payload_batch", "web_artifact_payload_failed", "web_artifact_payload_loaded", "web_artifact_payload_retried", "web_artifact_section_opened", "web_artifact_unrenderable_seen", "web_asset_deleted", "web_asset_note_saved", "web_asset_operation_failed", "web_asset_panel_opened", "web_asset_uploaded", "web_collaboration_action_completed", "web_collaboration_action_failed", "web_graph_layout_changed", "web_graph_load_failed", "web_graph_loaded", "web_graph_mutation_completed", "web_graph_mutation_failed", "web_graph_mutation_started", "web_graph_node_focused", "web_graph_opened", "web_graph_partial_notice_shown", "web_graph_search_changed", "web_graph_search_empty", "web_node_closed", "web_node_edit_cancelled", "web_node_edit_failed", "web_node_edit_saved", "web_node_edit_started", "web_node_hydration_completed", "web_node_hydration_failed", "web_node_lease_acquired", "web_node_lease_failed", "web_node_lease_heartbeat_failed", "web_node_lease_released", "web_node_opened", "web_node_stage_committed", "web_node_stage_created", "web_node_stage_discarded", "web_node_stage_failed", "web_node_stage_rebased", "web_settings_opened", "web_temp_node_commit_completed", "web_temp_node_commit_failed"];
|
|
2
|
+
export declare const PRODUCT_TELEMETRY_EVENT_NAMES: readonly ["api_client_operation_recorded", "api_route_behavior_recorded", "cli_command_behavior_recorded", "credits_checkout_started", "mcp_tool_behavior_recorded", "message_sent", "node_created", "node_link_disabled", "node_link_enabled", "node_public_disabled", "node_public_enabled", "product_demand_signal_recorded", "server_workflow_behavior_recorded", "subscription_checkout_started", "user_session_started", "web_app_opened", "web_artifact_payload_batch", "web_artifact_payload_failed", "web_artifact_payload_loaded", "web_artifact_payload_retried", "web_artifact_section_opened", "web_artifact_unrenderable_seen", "web_asset_deleted", "web_asset_note_saved", "web_asset_operation_failed", "web_asset_panel_opened", "web_asset_uploaded", "web_collaboration_action_completed", "web_collaboration_action_failed", "web_graph_filter_panel_closed", "web_graph_filter_panel_opened", "web_graph_filter_visibility_changed", "web_graph_layout_changed", "web_graph_load_failed", "web_graph_loaded", "web_graph_mutation_completed", "web_graph_mutation_failed", "web_graph_mutation_started", "web_graph_node_focused", "web_graph_opened", "web_graph_partial_notice_shown", "web_graph_search_changed", "web_graph_search_empty", "web_node_closed", "web_node_edit_cancelled", "web_node_edit_failed", "web_node_edit_saved", "web_node_edit_started", "web_node_hydration_completed", "web_node_hydration_failed", "web_node_lease_acquired", "web_node_lease_failed", "web_node_lease_heartbeat_failed", "web_node_lease_released", "web_node_opened", "web_node_stage_committed", "web_node_stage_created", "web_node_stage_discarded", "web_node_stage_failed", "web_node_stage_rebased", "web_settings_opened", "web_temp_node_commit_completed", "web_temp_node_commit_failed"];
|
|
3
3
|
export type ProductTelemetryEventName = (typeof PRODUCT_TELEMETRY_EVENT_NAMES)[number];
|
|
4
4
|
export declare const PRODUCT_TELEMETRY_SURFACES: readonly ["api", "api_client", "cli", "mcp", "server", "webui"];
|
|
5
5
|
export type ProductTelemetrySurface = (typeof PRODUCT_TELEMETRY_SURFACES)[number];
|
|
6
|
-
export declare const WEBUI_PRODUCT_TELEMETRY_EVENT_NAMES: readonly ["web_app_opened", "web_artifact_payload_batch", "web_artifact_payload_failed", "web_artifact_payload_loaded", "web_artifact_payload_retried", "web_artifact_section_opened", "web_artifact_unrenderable_seen", "web_asset_deleted", "web_asset_note_saved", "web_asset_operation_failed", "web_asset_panel_opened", "web_asset_uploaded", "web_collaboration_action_completed", "web_collaboration_action_failed", "web_graph_layout_changed", "web_graph_load_failed", "web_graph_loaded", "web_graph_mutation_completed", "web_graph_mutation_failed", "web_graph_mutation_started", "web_graph_node_focused", "web_graph_opened", "web_graph_partial_notice_shown", "web_graph_search_changed", "web_graph_search_empty", "web_node_closed", "web_node_edit_cancelled", "web_node_edit_failed", "web_node_edit_saved", "web_node_edit_started", "web_node_hydration_completed", "web_node_hydration_failed", "web_node_lease_acquired", "web_node_lease_failed", "web_node_lease_heartbeat_failed", "web_node_lease_released", "web_node_opened", "web_node_stage_committed", "web_node_stage_created", "web_node_stage_discarded", "web_node_stage_failed", "web_node_stage_rebased", "web_settings_opened", "web_temp_node_commit_completed", "web_temp_node_commit_failed"];
|
|
6
|
+
export declare const WEBUI_PRODUCT_TELEMETRY_EVENT_NAMES: readonly ["web_app_opened", "web_artifact_payload_batch", "web_artifact_payload_failed", "web_artifact_payload_loaded", "web_artifact_payload_retried", "web_artifact_section_opened", "web_artifact_unrenderable_seen", "web_asset_deleted", "web_asset_note_saved", "web_asset_operation_failed", "web_asset_panel_opened", "web_asset_uploaded", "web_collaboration_action_completed", "web_collaboration_action_failed", "web_graph_filter_panel_closed", "web_graph_filter_panel_opened", "web_graph_filter_visibility_changed", "web_graph_layout_changed", "web_graph_load_failed", "web_graph_loaded", "web_graph_mutation_completed", "web_graph_mutation_failed", "web_graph_mutation_started", "web_graph_node_focused", "web_graph_opened", "web_graph_partial_notice_shown", "web_graph_search_changed", "web_graph_search_empty", "web_node_closed", "web_node_edit_cancelled", "web_node_edit_failed", "web_node_edit_saved", "web_node_edit_started", "web_node_hydration_completed", "web_node_hydration_failed", "web_node_lease_acquired", "web_node_lease_failed", "web_node_lease_heartbeat_failed", "web_node_lease_released", "web_node_opened", "web_node_stage_committed", "web_node_stage_created", "web_node_stage_discarded", "web_node_stage_failed", "web_node_stage_rebased", "web_settings_opened", "web_temp_node_commit_completed", "web_temp_node_commit_failed"];
|
|
7
7
|
export type WebuiProductTelemetryEventName = (typeof WEBUI_PRODUCT_TELEMETRY_EVENT_NAMES)[number];
|
|
8
8
|
export declare const WEBUI_NODE_WORKFLOW_FAMILIES: readonly ["artifacts", "assets", "bulk_graph_actions", "canvas", "commit", "context_menu", "graph_layout", "hooks", "lease", "minimap", "node_focus", "node_hydration", "node_open", "node_selection", "node_view_editing", "partial_graph_preview", "radial_view", "share_policy", "staged_edit", "tags", "timeline_layout"];
|
|
9
9
|
export type WebuiNodeWorkflowFamily = (typeof WEBUI_NODE_WORKFLOW_FAMILIES)[number];
|