@zaip-ai/cli 3.0.0 → 3.2.0
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 +11 -5
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +16 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/services/adapters.d.ts +1 -1
- package/dist/services/adapters.js +1 -1
- package/dist/services/github-setup-status.d.ts +12 -0
- package/dist/services/github-setup-status.d.ts.map +1 -0
- package/dist/services/github-setup-status.js +84 -0
- package/dist/services/github-setup-status.js.map +1 -0
- package/dist/services/github-setup-status.test.d.ts +2 -0
- package/dist/services/github-setup-status.test.d.ts.map +1 -0
- package/dist/services/github-setup-status.test.js +57 -0
- package/dist/services/github-setup-status.test.js.map +1 -0
- package/dist/services/logger.d.ts +10 -1
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +23 -6
- package/dist/services/logger.js.map +1 -1
- package/dist/services/logger.test.js +33 -5
- package/dist/services/logger.test.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.agents/README-ENG.md +5 -1
- package/templates/.agents/README.md +5 -1
- package/templates/.agents/config/agents/discovery.json +1 -1
- package/templates/.agents/dashboard/.zaip-managed.json +65 -41
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{DashboardHelpDialog-TnrL1ZyZ.js → DashboardHelpDialog-BzaUTZDx.js} +27 -12
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{PricingSettingsDialog-DjQpBqGU.js → PricingSettingsDialog-21cCJik-.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{TraceabilityWorkspace-BQZXUnQu.js → TraceabilityWorkspace-wqW52uCx.js} +1 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{dashboard-localization-Basaw1NR.js → dashboard-localization-BkAm8-h4.js} +5 -1
- package/templates/.agents/dashboard/apps/frontend/dist/assets/{index-BQe3zTvL.js → index-DqZKJS8y.js} +2 -2
- package/templates/.agents/dashboard/apps/frontend/dist/index.html +1 -1
- package/templates/.agents/dashboard/apps/frontend/package.json +1 -1
- package/templates/.agents/dashboard/modules/cost-monitor/package.json +1 -1
- package/templates/.agents/dashboard/modules/operations/package.json +1 -1
- package/templates/.agents/dashboard/modules/traceability/package.json +1 -1
- package/templates/.agents/dashboard/packages/branding/package.json +1 -1
- package/templates/.agents/dashboard/packages/contracts/package.json +1 -1
- package/templates/.agents/dashboard/packages/data-export/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/dist/server.cjs +182 -160
- package/templates/.agents/dashboard/packages/local-runtime/dist/sqlite-read-model.cjs +174 -152
- package/templates/.agents/dashboard/packages/local-runtime/package.json +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/server.mjs +182 -160
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-calendar.ts +17 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cold-parse.test.ts +78 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-projection.test.ts +94 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-cost-group-projection.ts +5 -5
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-duration-lookup.test.ts +59 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-entity-label-views.test.ts +72 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-materialize-runs.ts +3 -4
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.test.ts +171 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-query-entity-group.ts +36 -16
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical-parsing.ts +7 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts +5 -15
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-keeps-orphan-telemetry-out-kanban-without.test.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-rebuild.ts +2 -0
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-schema.ts +3 -2
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model.test.ts +1 -1
- package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-schema-base-views.ts +22 -14
- package/templates/.agents/dashboard/packages/ui/package.json +1 -1
- package/templates/.agents/dashboard/tests/e2e/package.json +1 -1
- package/templates/.agents/design/.zaip-managed.json +3 -3
- package/templates/.agents/design/apps/catalog/package.json +1 -1
- package/templates/.agents/design/packages/local-runtime/package.json +1 -1
- package/templates/.agents/requirements/autonomous-assurance.md +1 -1
- package/templates/.agents/requirements/cloud-hostinger-autonomy.md +1 -1
- package/templates/.agents/requirements/comparative-audit.md +1 -1
- package/templates/.agents/requirements/context-engine.md +1 -1
- package/templates/.agents/requirements/cost-observability.md +1 -1
- package/templates/.agents/requirements/dashboard-launch.md +1 -1
- package/templates/.agents/requirements/data-export.md +1 -1
- package/templates/.agents/requirements/design-system.md +1 -1
- package/templates/.agents/requirements/execution-engine.md +1 -1
- package/templates/.agents/requirements/kanban-dashboard.md +1 -1
- package/templates/.agents/requirements/model-orchestration.md +1 -1
- package/templates/.agents/requirements/public-distribution.md +9 -2
- package/templates/.agents/requirements/software-architecture.md +1 -1
- package/templates/.agents/requirements/strategic-improvements.md +1 -1
- package/templates/.agents/requirements/work-lifecycle.md +1 -1
- package/templates/.agents/requirements/zaip-strategic-95.md +1 -1
- package/templates/.agents/runtime/VERSION +1 -1
- package/templates/.agents/runtime/bin/zaip.mjs +5 -5
- package/templates/.agents/runtime/checksums.sha256 +5 -5
- package/templates/.agents/runtime/manifest.json +1 -1
- package/templates/.agents/runtime/provenance.json +4 -4
- package/templates/.agents/runtime/sbom.cdx.json +1 -1
- package/templates/.agents/skills/zaip-skill-config/SKILL.md +12 -0
- package/templates/.agents/skills/zaip-skill-github-deploy/references/release-identity.md +17 -12
- package/templates/.agents/skills/zaip-skill-github-setup/SKILL.md +7 -1
- package/templates/.agents/skills/zaip-skill-setup/SKILL.md +12 -0
- package/templates/.agents/zaip-aios/README.md +4 -3
- package/templates/.agents/zaip-aios/VERSION +1 -1
- package/templates/.agents/zaip-aios/guides/20-instalacao-detalhada.md +22 -1
- package/templates/.agents/zaip-aios/guides/26-qualidade-e-release.md +20 -9
- package/templates/template-manifest.json +105 -81
package/templates/.agents/dashboard/packages/local-runtime/src/sqlite-read-model-canonical.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
consolidatedValue,
|
|
3
3
|
frontMatterRecord,
|
|
4
|
+
isCanonicalLifecyclePath,
|
|
4
5
|
recordValue,
|
|
5
6
|
stringValue,
|
|
6
7
|
stringValues,
|
|
@@ -23,6 +24,9 @@ import {
|
|
|
23
24
|
type PricingCatalog,
|
|
24
25
|
} from "@zaip-ai/costs";
|
|
25
26
|
import type { RunV2Fold, UsageRecordedV2 } from "../../../../../packages/decisions/src/index.js";
|
|
27
|
+
import { saoPauloDay } from "./sqlite-calendar.js";
|
|
28
|
+
|
|
29
|
+
export { saoPauloDay } from "./sqlite-calendar.js";
|
|
26
30
|
|
|
27
31
|
const MAX_RECONCILED_RUN_INTERVAL_MS = 2 * 3_600_000;
|
|
28
32
|
|
|
@@ -112,6 +116,7 @@ export function readCanonicalLifecycleRecords(rows: Array<{ path: string; conten
|
|
|
112
116
|
const changes: CanonicalChange[] = [];
|
|
113
117
|
const decisions: CanonicalDecision[] = [];
|
|
114
118
|
for (const row of rows) {
|
|
119
|
+
if (!isCanonicalLifecyclePath(row.path)) continue;
|
|
115
120
|
const metadata = frontMatterRecord(row.content);
|
|
116
121
|
if (metadata === null) continue;
|
|
117
122
|
const id = stringValue(metadata.id);
|
|
@@ -689,21 +694,6 @@ export function usagePricingAudit(
|
|
|
689
694
|
};
|
|
690
695
|
}
|
|
691
696
|
|
|
692
|
-
export function saoPauloDay(timestamp: string): string {
|
|
693
|
-
const values = Object.fromEntries(
|
|
694
|
-
new Intl.DateTimeFormat("en", {
|
|
695
|
-
timeZone: "America/Sao_Paulo",
|
|
696
|
-
year: "numeric",
|
|
697
|
-
month: "2-digit",
|
|
698
|
-
day: "2-digit",
|
|
699
|
-
})
|
|
700
|
-
.formatToParts(new Date(timestamp))
|
|
701
|
-
.filter((part) => part.type !== "literal")
|
|
702
|
-
.map((part) => [part.type, part.value]),
|
|
703
|
-
) as { year: string; month: string; day: string };
|
|
704
|
-
return `${values.year}-${values.month}-${values.day}`;
|
|
705
|
-
}
|
|
706
|
-
|
|
707
697
|
export type TemporalInterval = { activityRowId: string; startMs: number; endMs: number };
|
|
708
698
|
|
|
709
699
|
/**
|
|
@@ -210,7 +210,7 @@ describe("SQLite dashboard read model", () => {
|
|
|
210
210
|
snapshot
|
|
211
211
|
.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key='schema_version'")
|
|
212
212
|
.get(),
|
|
213
|
-
).toEqual({ value: "
|
|
213
|
+
).toEqual({ value: "79" });
|
|
214
214
|
} finally {
|
|
215
215
|
snapshot.close();
|
|
216
216
|
}
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
saoPauloDay,
|
|
18
18
|
type TemporalInterval,
|
|
19
19
|
} from "./sqlite-read-model-canonical.js";
|
|
20
|
+
import { isCanonicalLifecyclePath } from "./sqlite-read-model-canonical-parsing.js";
|
|
20
21
|
import { reportSqliteReadModelLaunchProgress } from "./sqlite-read-model-launch-progress.js";
|
|
21
22
|
import {
|
|
22
23
|
hasReusableSnapshotPayloads,
|
|
@@ -628,6 +629,7 @@ export async function rebuildSqliteReadModel(
|
|
|
628
629
|
decisions: [] as CanonicalDecision[],
|
|
629
630
|
};
|
|
630
631
|
for (const row of canonicalRows) {
|
|
632
|
+
if (!isCanonicalLifecyclePath(row.path)) continue;
|
|
631
633
|
const parsed = parsedSources.read("lifecycle", row.path, sourceHashFor(row.path), () =>
|
|
632
634
|
readCanonicalLifecycleRecords([row]),
|
|
633
635
|
);
|
|
@@ -4,9 +4,9 @@ import { DatabaseSync } from "node:sqlite";
|
|
|
4
4
|
import { hasRequiredFirstFoldPayloads } from "./sqlite-first-fold-persistence.js";
|
|
5
5
|
import type { SqliteReadModelSourceCheckpoint } from "./sqlite-read-model-source-fingerprint.js";
|
|
6
6
|
export const dbRelativePath = ".local/sqlite/zaip-aios-dashboard.sqlite";
|
|
7
|
-
// Schema
|
|
7
|
+
// Schema 79 installs bounded execution/conversation label views and shared daily groups.
|
|
8
8
|
// Old snapshots must rebuild even when their canonical hashes still match.
|
|
9
|
-
export const readModelSchemaVersion = "
|
|
9
|
+
export const readModelSchemaVersion = "79";
|
|
10
10
|
export const requiredPersistedTables = [
|
|
11
11
|
"zaip_aios_activities",
|
|
12
12
|
"zaip_dim_llm_model",
|
|
@@ -31,6 +31,7 @@ export const requiredIndexes = [
|
|
|
31
31
|
"zaip_activities_period_invocation",
|
|
32
32
|
"zaip_activities_status",
|
|
33
33
|
"zaip_activities_payload",
|
|
34
|
+
"zaip_activities_duration_activity",
|
|
34
35
|
"zaip_activities_file_path",
|
|
35
36
|
"zaip_activities_work_item_identity",
|
|
36
37
|
"cost_dimension_facts_day_model",
|
|
@@ -177,7 +177,7 @@ describe("SQLite dashboard read model", () => {
|
|
|
177
177
|
metadata
|
|
178
178
|
.prepare("SELECT value FROM zaip_vw_read_model_metadata WHERE key='schema_version'")
|
|
179
179
|
.get(),
|
|
180
|
-
).toEqual({ value: "
|
|
180
|
+
).toEqual({ value: "79" });
|
|
181
181
|
} finally {
|
|
182
182
|
metadata.close();
|
|
183
183
|
}
|
|
@@ -16,6 +16,7 @@ export const baseViewSql = `
|
|
|
16
16
|
WHERE agent_invocation_id IS NOT NULL;
|
|
17
17
|
CREATE INDEX zaip_activities_status ON zaip_aios_activities(activity_source_kind, status, phase);
|
|
18
18
|
CREATE INDEX IF NOT EXISTS zaip_activities_payload ON zaip_aios_activities(payload_type, activity_key);
|
|
19
|
+
CREATE INDEX zaip_activities_duration_activity ON zaip_aios_activities(CAST(json_extract(payload_json, '$.activity_row_id') AS TEXT)) WHERE payload_type='duration_allocation';
|
|
19
20
|
-- File lookups must not parse every JSON payload (including its full
|
|
20
21
|
-- content) on each read. The file view uses this path-only index for
|
|
21
22
|
-- binary equality and cheap LIKE scans without changing their semantics.
|
|
@@ -33,12 +34,13 @@ export const baseViewSql = `
|
|
|
33
34
|
CREATE VIEW attributed_token_active_facts AS SELECT json_extract(payload_json, '$.activity_row_id') AS activity_row_id, json_extract(payload_json, '$.occurred_day_sp') AS occurred_day_sp, json_extract(payload_json, '$.attributed_token_active_ms') AS attributed_token_active_ms FROM zaip_aios_activities WHERE payload_type='duration_allocation';
|
|
34
35
|
CREATE VIEW canonical_artifacts AS SELECT artifact_kind, artifact_id, artifact_occurred_at AS occurred_at, artifact_occurred_day_sp AS occurred_day_sp, artifact_task_id AS task_id, artifact_change_id AS change_id, artifact_run_id AS run_id, path AS source_path FROM files WHERE artifact_kind IS NOT NULL AND artifact_occurred_at IS NOT NULL;
|
|
35
36
|
CREATE VIEW activities AS
|
|
36
|
-
SELECT a.*,
|
|
37
|
+
SELECT a.*, (
|
|
38
|
+
SELECT SUM(json_extract(f.payload_json, '$.attributed_token_active_ms'))
|
|
39
|
+
FROM zaip_aios_activities f INDEXED BY zaip_activities_duration_activity
|
|
40
|
+
WHERE f.payload_type='duration_allocation'
|
|
41
|
+
AND CAST(json_extract(f.payload_json, '$.activity_row_id') AS TEXT)=a.activity_row_id
|
|
42
|
+
) AS attributed_token_active_ms
|
|
37
43
|
FROM zaip_aios_activities a
|
|
38
|
-
LEFT JOIN (
|
|
39
|
-
SELECT activity_row_id, SUM(attributed_token_active_ms) AS attributed_token_active_ms
|
|
40
|
-
FROM attributed_token_active_facts GROUP BY activity_row_id
|
|
41
|
-
) f USING(activity_row_id)
|
|
42
44
|
WHERE a.payload_type IS NULL;
|
|
43
45
|
-- Macro-only allocations are persisted as technical payloads to keep
|
|
44
46
|
-- the global Run population unique. SPEC summaries opt into this
|
|
@@ -68,21 +70,27 @@ export const baseViewSql = `
|
|
|
68
70
|
CREATE VIEW specs AS SELECT id, title, status, risk, occurred_at, occurred_day_sp FROM work_items WHERE entity_kind = 'spec';
|
|
69
71
|
CREATE VIEW prds AS SELECT id, title, status, risk, occurred_at, occurred_day_sp FROM work_items WHERE entity_kind = 'prd';
|
|
70
72
|
CREATE VIEW executions AS
|
|
71
|
-
|
|
73
|
+
WITH projected_executions AS MATERIALIZED (
|
|
74
|
+
SELECT id, status, created_at, occurred_day_sp FROM canonical_executions
|
|
75
|
+
)
|
|
76
|
+
SELECT id, status, created_at AS occurred_at, occurred_day_sp FROM projected_executions
|
|
72
77
|
UNION ALL
|
|
73
78
|
SELECT execution_id, MAX(status), MIN(occurred_at), MIN(occurred_day_sp)
|
|
74
|
-
FROM
|
|
75
|
-
WHERE execution_id IS NOT NULL
|
|
76
|
-
AND NOT EXISTS (SELECT 1 FROM
|
|
79
|
+
FROM zaip_aios_activities
|
|
80
|
+
WHERE payload_type IS NULL AND execution_id IS NOT NULL
|
|
81
|
+
AND NOT EXISTS (SELECT 1 FROM projected_executions c WHERE c.id=zaip_aios_activities.execution_id)
|
|
77
82
|
GROUP BY execution_id;
|
|
78
83
|
CREATE VIEW conversations AS
|
|
84
|
+
WITH projected_executions AS MATERIALIZED (
|
|
85
|
+
SELECT status, created_at, occurred_day_sp, origin_type, origin_id FROM canonical_executions
|
|
86
|
+
)
|
|
79
87
|
SELECT origin_id AS id, MAX(status) AS status, MIN(created_at) AS occurred_at, MIN(occurred_day_sp) AS occurred_day_sp
|
|
80
|
-
FROM
|
|
88
|
+
FROM projected_executions WHERE origin_type='interaction' AND origin_id IS NOT NULL GROUP BY origin_id
|
|
81
89
|
UNION ALL
|
|
82
90
|
SELECT conversation_id, MAX(status), MIN(occurred_at), MIN(occurred_day_sp)
|
|
83
|
-
FROM
|
|
84
|
-
WHERE conversation_id IS NOT NULL
|
|
85
|
-
AND NOT EXISTS (SELECT 1 FROM
|
|
91
|
+
FROM zaip_aios_activities
|
|
92
|
+
WHERE payload_type IS NULL AND conversation_id IS NOT NULL
|
|
93
|
+
AND NOT EXISTS (SELECT 1 FROM projected_executions c WHERE c.origin_type='interaction' AND c.origin_id=zaip_aios_activities.conversation_id)
|
|
86
94
|
GROUP BY conversation_id;
|
|
87
95
|
CREATE VIEW decisions AS SELECT id, title, origin, scope_type, scope_id, NULL AS status, NULL AS risk, created_at AS occurred_at, occurred_day_sp, source_path FROM canonical_decisions;
|
|
88
96
|
CREATE VIEW changes AS SELECT id, title, status, risk, source_type, source_id, requirement_ids_json, acceptance_ids_json, task_ids_json, result, created_at AS occurred_at, occurred_day_sp, source_path FROM canonical_changes;
|
|
@@ -281,7 +289,7 @@ export const baseViewSql = `
|
|
|
281
289
|
-- SPEC/PRD rows have the same canonical population as the big
|
|
282
290
|
-- numbers. A macro without direct invocation remains visible with
|
|
283
291
|
-- factual NULL usage/cost/time, never a fabricated zero.
|
|
284
|
-
CREATE VIEW cost_monitor_group_daily_cache AS SELECT occurred_day_sp AS day, 'execution' AS group_kind, execution_id AS group_value, COUNT(*) AS invocation_count, SUM(llm_call_count) AS llm_call_count, SUM(duration_ms) AS total_duration, SUM(input_tokens) AS total_input_tokens, SUM(cached_input_tokens) AS total_cached_input_tokens, SUM(output_tokens) AS total_output_tokens, SUM(reasoning_tokens) AS total_reasoning_tokens, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM
|
|
292
|
+
CREATE VIEW cost_monitor_group_daily_cache AS WITH group_invocations AS MATERIALIZED (SELECT occurred_day_sp, execution_id, zaip_agent, provider, model, task_id, spec_id, prd_id, conversation_id, llm_call_count, duration_ms, input_tokens, cached_input_tokens, output_tokens, reasoning_tokens, total_tokens, cost_usd, cost_brl FROM invocations) SELECT occurred_day_sp AS day, 'execution' AS group_kind, execution_id AS group_value, COUNT(*) AS invocation_count, SUM(llm_call_count) AS llm_call_count, SUM(duration_ms) AS total_duration, SUM(input_tokens) AS total_input_tokens, SUM(cached_input_tokens) AS total_cached_input_tokens, SUM(output_tokens) AS total_output_tokens, SUM(reasoning_tokens) AS total_reasoning_tokens, SUM(total_tokens) AS total_tokens, SUM(cost_usd) AS total_cost_usd, SUM(cost_brl) AS total_cost_brl FROM group_invocations WHERE execution_id IS NOT NULL GROUP BY occurred_day_sp, execution_id UNION ALL SELECT occurred_day_sp, 'zaip_agent', zaip_agent, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE zaip_agent IS NOT NULL GROUP BY occurred_day_sp, zaip_agent UNION ALL SELECT occurred_day_sp, 'provider', provider, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE provider IS NOT NULL GROUP BY occurred_day_sp, provider UNION ALL SELECT occurred_day_sp, 'model', model, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE model IS NOT NULL GROUP BY occurred_day_sp, model UNION ALL SELECT occurred_day_sp, 'task', task_id, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE task_id IS NOT NULL GROUP BY occurred_day_sp, task_id UNION ALL SELECT occurred_day_sp, 'spec', spec_id, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE spec_id IS NOT NULL GROUP BY occurred_day_sp, spec_id UNION ALL SELECT occurred_day_sp, 'prd', prd_id, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE prd_id IS NOT NULL GROUP BY occurred_day_sp, prd_id UNION ALL SELECT occurred_day_sp, 'conversation', conversation_id, COUNT(*), SUM(llm_call_count), SUM(duration_ms), SUM(input_tokens), SUM(cached_input_tokens), SUM(output_tokens), SUM(reasoning_tokens), SUM(total_tokens), SUM(cost_usd), SUM(cost_brl) FROM group_invocations WHERE conversation_id IS NOT NULL GROUP BY occurred_day_sp, conversation_id;
|
|
285
293
|
CREATE VIEW daily_aggregates AS SELECT * FROM daily_aggregate_cache;
|
|
286
294
|
CREATE VIEW overview AS
|
|
287
295
|
SELECT 'day' AS period_kind, day AS period_key, day AS start_day, day AS end_day, prd_count, spec_count, task_count, validation_count, evidence_count, activity_count, root_run_count, sub_run_count, total_run_count, invocation_count, cost_monitor_invocation_count, llm_call_count, source_event_count, total_root_run_duration, total_sub_run_duration, operations_total_duration, cost_monitor_total_duration, total_duration, total_tokens, total_cost_usd, total_cost_brl FROM daily_aggregates
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": "DESIGN.md",
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
},
|
|
253
253
|
{
|
|
254
254
|
"path": "apps/catalog/package.json",
|
|
255
|
-
"sha256": "
|
|
255
|
+
"sha256": "c8c66a38b06ffe5aaa0fd27130559ca442ad5757c78f44910f5fa2641d39630a"
|
|
256
256
|
},
|
|
257
257
|
{
|
|
258
258
|
"path": "apps/catalog/public/logo_novo_azul.png",
|
|
@@ -352,7 +352,7 @@
|
|
|
352
352
|
},
|
|
353
353
|
{
|
|
354
354
|
"path": "packages/local-runtime/package.json",
|
|
355
|
-
"sha256": "
|
|
355
|
+
"sha256": "4dd9befa5e8a2bbda75a2db1e705e690b5c5150c6df028ee1d9a1dde74f88f89"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"path": "packages/local-runtime/runtime.mjs",
|
|
@@ -4,9 +4,9 @@ id: REQUIREMENTS-PUBLIC-DISTRIBUTION
|
|
|
4
4
|
area: public-distribution
|
|
5
5
|
title: Distribuição pública e ativação
|
|
6
6
|
status: active
|
|
7
|
-
version:
|
|
7
|
+
version: 6
|
|
8
8
|
source_change: null
|
|
9
|
-
source_release: "3.
|
|
9
|
+
source_release: "3.2.0"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Distribuição pública e ativação
|
|
@@ -42,4 +42,11 @@ introduzir paths ou identidades locais fixas.
|
|
|
42
42
|
|
|
43
43
|
## Verificação
|
|
44
44
|
|
|
45
|
+
### Onboarding de instalação sob REQ-DIST-002
|
|
46
|
+
|
|
47
|
+
- A instalação não exige Git disponível, identidade Git, repositório, commit inicial ou GitHub previamente configurados. Falhas reais de integridade e etapas obrigatórias continuam sendo informadas.
|
|
48
|
+
- O resumo mostra a versão efetivamente instalada como link Markdown para a página npm dessa versão, contagens observadas e resultados reais de SQLite e doctor. Dry-run ou etapa não executada não equivale a sucesso.
|
|
49
|
+
- O último CTA pergunta se o usuário deseja ajuda para configurar GitHub quando o estado local estiver pendente/inconclusivo; com GitHub configurado localmente, pergunta pela configuração inicial do projeto. Estado local não comprova autenticação.
|
|
50
|
+
- Uma resposta afirmativa encaminha à skill correspondente, que explica opções e pergunta antes de aplicar escolhas. Após GitHub concluído, oferece projeto. Após projeto concluído ou recusa/adiamento, encerra o onboarding sem novas ofertas automáticas.
|
|
51
|
+
|
|
45
52
|
Validar por testes unitários de matriz e paths, falhas injetadas de transação, cleanroom do template, pack smoke do `.tgz` exato e auditoria independente. A promoção para `active` exige Evidence tipada no commit final e ausência de regressão conhecida nos gates públicos.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
3.
|
|
1
|
+
3.2.0
|